NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3376 most downloaded on npm
JavaScript parser written in OCaml. Produces ESTree AST
Last release today
02 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
435 releases · first in 2015
Restored a bunch of deprecated/experimental/browser-specific APIs to the builtin flowlib and made them optional
(@gabelevi mistakenly listed a few v0.26.0 changes as being in v0.25.0. The Changelog has been updated to reflect reality. Sorry!)
Likely to cause new Flow errors:
New Features:
**)flow ls command to list the files that Flow can see.Notable bug fixes:
/x/* 5 */y/ - that's no comment!Misc:
One column per quarter.
…annotations, and removing non-standard and deprecated features. If you're relying on these things, then you may have new errors.
Likely to cause new Flow errors:
@marudor made a tremendous effort to clean up the builtin flowlib definitions, adding missing things, fixing annotations, and removing non-standard and deprecated features. If you're relying on these things, then you may have new errors.
In the past, generic types could leave off the type arguments. Flow is moving towards making these required. Applying type arguments to a polymorphic type (e.g. Map<string, number>) is like calling a function. If writing my_function was the same thing as writing my_function(), it would be really difficult to pass functions as values. Similarly, by making type arguments required, it frees us up to do more with our polymorphic types. If you have a polymorphic type with default types, like type Foo<T = number>, you can now write Foo<> to apply 0 type arguments to the polymorphic type Foo.
To ease migration, v0.25.0 still allows you to omit type arguments by default. v0.27.0 will start enforcing that type arguments are always supplied. To enable this behavior in v0.25.0, you can add experimental.strict_type_args=true to the .flowconfig.
New Features:
declare module.exports: type; <-- this is the new syntax to declare the CommonJS export type. Previously, you had to write declare var exports: type;. This can be used in .flow files and in declare module declarations.Misc:
Fixed parsing of JSON files with duplicate object keys
Likely to cause new Flow errors:
Likely to cause new Flow errors:
extends React.Component<DefaultProps, Props, void> (previously it was extends React.Component<DefaultProps, Props, {}>)state: State;if (o.noSuchP === foo) { ... }). These kinds of checks will now cause a type error.New features:
div, span, etc) and specify which properties they have.interface Generator<+Yield,+Return,-Next> {...}. Still pending transpiler support though.string and union types with string equality now properly refines the types.export * as from @leebyron's Stage1 proposal. Babel support hereNotable bug fixes:
this typethisswitch statements with default case.Misc:
Initial support for ES6 import/export (with CommonJS interop)
x != undefined and x != null as the same refinementAlso watch for changes in include paths
Update the parser to work with the new esprima-fb & ast-types
Flow comments should be ready for use
** Flow comments should be ready for use **
Type casts and import type should be ready for use
** Type casts and import type should be ready for use **
Nothing published for this version
Nothing published for this version
Fix refinement of optional nullable types
[Issue #4] Typecheck .jsx files
Initial release
Initial release
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →