Summary
Will the shared component library be written in Typescript? If so, are there certain ways we want to use TS?
Considerations
- We likely will use TS, as we're using TS in many similar areas already. See T282835 for a detailed evaluation of TypeScript and ensuing discussion
- What are some best practices to facilitate using TS in the most painless/efficient way?
- How to best expose things like type definitions to consumers regardless of whether they are using TS or not?
Relevant links
- TypeScript documentation
- Vue's TypeScript support docs
- T284782 Improve the way WVUI ships type definitions
- T283830 Investigate use of JSDoc for type safety
- T283831 Create wiki page for Vue + TypeScript help
Questions
1. How will we expose type definitions to consumers?
Design Systems Team proposal: See proposed solutions in T284782
2. How will we facilitate TypeScript development, both for the shared component library and for feature work?
Design Systems Team proposal: Create a wiki page to help developers set up and use TypeScript, especially within MediaWiki and Vue. Document best practices, known issues, and solved problems. See T283831.
Decision
We will use Typescript to develop the new shared component library. The exact approach to how TS is used will be developed by the new task force that will spearhead initial development of the new library.