flow-to-ts
Convert Flow code to TypeScript.
The goal of this project is to provide a tool that can translate 95% of Flow to TypeScript while maintaining a high percentage of the existing type information. We don't want to convert code and end up with everything using
any
. We also want to avoid having to make a lot of manual changes to files
afterwards, e.g. changing SyntheticEvent
to React.Event
.Quick start
yarn global add @khanacademy/flow-to-ts
flow-to-ts [options] <file globs>
Playground
https://flow-to-ts.netlify.comPrinciples
- when exact translation isn't possible:
any
when possible and provide a gentle warning
- when it isn't possible to downgrade (e.g. %checks
), remove the syntaxand provide a forceful warning that the code in question will need a human
to convert it manually.
- best effort to maintain blank lines and the position comments, this isn't
Contibuting
Bugs
Bug reports for converting Flow to TypeScript should include a link to the playground with an example of a minimal reproducible example of the bug.Feature Requests
Feature requests are welcome.Pull Requests
Please make sure there is a GitHub issue first before creating a pull request except for small things. Also, please sign our Contributor License Agreement.Pull requests that fix a bug in the conversion code should include one or more test cases and should have 100% diff coverage.
Dev quick start
git clone git@github.com:Khan/flow-to-ts.git
cd flow-to-ts
yarn
yarn test
Helpful resources
- https://github.com/niieani/typescript-vs-flowtype
- https://astexplorer.net/