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

DimensionTypeScript 7Flow
Library typesBuilt in or @types/* (DefinitelyTyped)Inline types or flow-typed stubs; coverage is far smaller
Build stepStrip with SWC, Oxc, esbuild, or Node 22.18+ native stripping; check with tscBabel or flow-remove-types
FrameworksReact, Vue, Angular, Svelte, Next.js, AstroReact and React Native
Recent directionNative compiler, ongoing language workReact 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.json and rejects enums, runtime namespaces, and parameter properties; use erasableSyntaxOnly to 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-bin current.
  • 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-ts for mechanical syntax conversion, then fix by hand. Note its last release was in 2019, and ts-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.