Dear all,

As we all know, TypeScript would bring a lot of convivence to front-end 
development by providing a static type system. Unfortunately, most of 
Wikimedia's front-end codebases do not ship with TypeScript definitions.

To address this problem, recently, I have been working on writing the 
TypeScript definitions of OOjs and OOUI. Definitions of the former have been 
published to DefinitelyTyped, which is an official store for TypeScript 
definitions, and npm (https://www.npmjs.com/package/@types/oojs) while those 
for the latter are still work in progress.

During the development, some challenges arose:
1. Currently I am the only owner of @types/oojs npm package. This means that 
any contributions to that package are required to be approved by me, and for 
contributions from myself they are required to be approved by a DefinitelyTyped 
maintainer, which could be a slow procedure. I believe it would help a lot if 
maintainers of OOjs/OOUI or other Wikimedians would like to be another owner, 
which also reduces the bus factor.
2. The TypeScript compiler cannot recognize OO.inheritClass() calls and extend 
the class in the type system correctly, thus you need to use type assertions to 
set up the type correctly. This would bring inconvenience for classes like 
OO.ui.Dialog which heavily use inheritance.

I am writing to seek solutions to these problems.

Best regards,
diskdance
_______________________________________________
Wikitech-l mailing list -- wikitech-l@lists.wikimedia.org
To unsubscribe send an email to wikitech-l-le...@lists.wikimedia.org
https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/

Reply via email to