Overview
Use TypeScript for new code and treat Flow as a legacy dependency to keep only while it earns its place. TypeScript 7.0 (released 2026-07-08) is a Go rewrite of the compiler that its authors describe as about 10 times faster than 6.0, the last JavaScript-based release. Flow is still released (flow-bin 0.333 in September 2026) but its ecosystem is narrow. React Native’s own template targets TypeScript by default, with JavaScript and Flow still supported.
Comparison
| Dimension | TypeScript 7 | Flow |
|---|---|---|
| Library types | Built in or @types/* (DefinitelyTyped) | Inline types or flow-typed stubs; coverage is far smaller |
| Build step | Strip with SWC, Oxc, esbuild, or Node 22.18+ native stripping; check with tsc | Babel or flow-remove-types |
| Frameworks | React, Vue, Angular, Svelte, Next.js, Astro | React and React Native |
| Recent direction | Native compiler, ongoing language work | React component and hook syntax, mapped and conditional types, literal inference |
Pick TypeScript when
Pick TypeScript for any project that is not already on Flow.
- Nearly every major library ships TypeScript types or has
@types/*coverage. - Node.js strips TypeScript types by default since 22.18 and 23.6, but it ignores
tsconfig.jsonand rejects enums, runtime namespaces, and parameter properties; useerasableSyntaxOnlyto keep code compatible. - Turn on
strict: true; see typescript. - Hiring, tooling, and answers (including from LLM agents) overwhelmingly assume TypeScript.
Pick Flow when
Keep Flow only if all of these hold.
- The codebase already uses Flow and the team maintains type coverage and keeps
flow-bincurrent. - The stack is React Native or Relay and depends on Flow-specific syntax or Meta tooling.
- Conversion cost is larger than the cost of a narrow ecosystem.
Migrate from Flow
Convert module by module; the two type systems cannot be mixed within one file.
- Use
flow-to-tsfor mechanical syntax conversion, then fix by hand. Note its last release was in 2019, andts-migrate(2022) is also unmaintained; expect manual work on opaque types, variance, and$ObjMap-style utilities. - Keep Flow and TypeScript in separate packages during the transition.
- Source missing third-party types from DefinitelyTyped.
- Moving from TypeScript back to Flow has no supported path.
FAQ
Is Flow still maintained?
Yes; Flow is still released (flow-bin 0.333 in September 2026), but its ecosystem is narrow and library type coverage is far smaller than DefinitelyTyped. Use TypeScript for every new project.
Should I migrate from Flow to TypeScript?
Yes unless the codebase runs on React Native or Relay with Flow-specific syntax or Meta tooling and conversion costs more than the narrow ecosystem. Convert module by module, since the two type systems cannot be mixed within one file.
Is there a tool that converts Flow to TypeScript automatically?
flow-to-ts handles mechanical syntax conversion, but its last release was in 2019 and ts-migrate (2022) is also unmaintained. Expect manual work on opaque types, variance, and $ObjMap-style utilities.
How much faster is TypeScript 7?
Its authors describe TypeScript 7.0 (released 2026-07-08), a Go rewrite of the compiler, as about 10 times faster than 6.0. Version 6.0 was the last JavaScript-based release.