Learn how to create and use library definitions for the third-party code your code depends on.| flow.org
Flow provides a set of utility types to operate on other types to create new types.| flow.org
The empty type has no values. It is the subtype of all other types (i.e. the bottom type).| flow.org
The coverage command provides a metric of the amount of checking that Flow has| flow.org
Functions have two places where types are applied: parameters (input) and the return value (output).| flow.org
What is a subtype?| flow.org
A static type checker can use either the name (nominal typing) or the structure (structural typing)| flow.org
Flow is excited to announce Component Syntax, adding first-class support for React primitives such as components and hooks to the Flow language. These features bring improved ergonomics, expressiveness, and static enforcement for many of the Rules of React.| Flow Blog
Conditional types allow you to choose between two different output types by inspecting an input type.| Flow Blog
Flow now lets you define a function that encodes a type predicate over its parameter.| Flow Blog
To make it easier for new users to get started with Flow, we’re updating our type casting syntax to use 'as'.| Flow Blog
We’ve refreshed our documentation, and added the ability to configure options and lints in Try Flow!| Flow Blog
Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.| Flow Blog
As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,| Flow Blog
Starting in Flow version 0.201, make an object type’s fields all optional using Partial (use instead of the unsafe $Shape),| Flow Blog
We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.| Flow Blog
Local Type Inference makes Flow’s inference behavior more reliable and predictable, by modestly increasing Flow’s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.| Flow Blog
Flow handled the empty object literal {} in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.| Flow Blog
Flow will now require more annotations to functions and classes.| Flow Blog
Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.| Flow Blog
We're replacing Flow’s current inference engine with a system that behaves more predictably and can be reasoned about more locally.| Flow Blog
Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.| Flow Blog
A comparison of the enums features of TypeScript and Flow.| Flow Blog
Flow’s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.| Flow Blog
Improvements in soundness for this-typing in Flow, including the ability to annotate this on functions and methods.| Flow Blog
An update on Flow's direction and open source engagement.| Flow Blog
Code Faster.| flow.org
When you are declaring a new variable, you may optionally declare its type.| flow.org
Note: As of version 0.199 Flow uses Local Type Inference as its inference algorithm.| flow.org
Learn how to enable stricter type checking on a file-by-file basis.| flow.org
Guides and references for all you need to know about Flow| flow.org
Sometimes it is useful to create a type which is all of a set of other| flow.org
Flow’s Indexed Access Types allow you to get the type of a property from an object, array, or tuple type.| flow.org
Generics (sometimes referred to as polymorphic types) are a way of abstracting| flow.org
Variance is a topic that comes up fairly often in type systems. It is used to determine| flow.org
The [options] section in a .flowconfig file can contain several key-value| flow.org
Warning: Do not mistake any with mixed. It's also not the same as empty.| flow.org
Classes in Flow are nominally typed. This means that when you have two separate| flow.org
JavaScript classes| flow.org
Array types represent lists of unknown length, where all items have the same type.| flow.org
all| flow.org
Tuple types represent a fixed length list, where the elements can have different types.| flow.org
Objects can be used in many different ways in JavaScript.| flow.org
mixed is the supertype of all types. All values are mixed.| flow.org
It's safe to use an object with "extra" properties in a position that is| flow.org
Refinements allow us to narrow the type of a value based on conditional tests.| flow.org
Sometimes it's useful to create a type which is one of a set of other| flow.org