TL;DR: choose TypeScript.
On a high level, you should consider:
Is the type checker easy to install and use? Is it well documented? Is it performant and fast? Are there many type definitions? Ease of use has a direct correlation with adoption rate and productivity.
Are the maintainers able to support the project and address external contributions?
Flow is almost exclusively developed by a 10 person team within Facebook … The team’s priority is the needs of our internal Facebook customers … sadly we do not have resources to work on features requested only by external developers.
The complexity of Flow’s codebase makes it difficult to contribute to Flow itself, and our company-internal build systems, performance tests and integration tests make it very time consuming to review and integrate such pull requests, so we may close PRs that don’t align with our priorities. Similarly, we will close GitHub issues when we know we will not be able to provide timely support.
TypeScript has a large number of contributors and is very active on GitHub.
Is the type checker well supported by the community? Do other developers like using it? Can you easily find answers on Google or Stackoverflow? Are issues and pull requests adequately addressed? Do other developers build tools, plugins, and integrations for the type checker? A strong community equates to a solid position in the industry.
What does the future look like for the type checker? Are contributors releasing features and fixing bugs? Are companies and schools choosing one type checker over the other? This can determine the pool of developers who have experience with a type checker. Ask yourself, “Five years from now, which type checker will win?” By following the wrong trend, it will add technical debt and outdated skills that will be problematic later on.
You should choose TypeScript because it has:
- better performance
- great support
- a large community
- more type definitions (see DefinitelyTyped)
- better Visual Studio Code integrations
- more momentum (see Google Trends and npm-stat)