general: Port to TypeScript
TypeScript is a superset of JavaScript with strong typing and many other quality-of-life improvments. This MR modernizes the Sound Recorder codebase somewhat and ports it to TypeScript in steps:
- Porting it to ES modules
- Use type-checked JS
- Initial TypeScript port
- Strict TypeScript mode
- eslint
There are two main challenges waiting:
-
Flatpak -
CI
Once those are set up I'll feel comfortable unmarking this as
a draft, but otherwise I think this is ready for review.
If you have any ideas on how to get rid of the various
spots where I used // @ts-expect-error
, please
let me know.
Edited by Christopher Davis