Draft:Flow (type checker)

Flow is a popular, open-source type-checker for Javascript code which is built and maintained by Meta Platforms. It is used as an alternative for TypeScript and offers stricter analysis, but has a smaller ecosystem. For a while, React recommended Flow as the static type checker to use with JSX, although React no longer provides guidance regarding type-checking following the recent redesign of their website. According to statistics provided by GitHub's dependency graph, Flow is depended on by over 170 thousand different repositories hosted on GitHub alone. In comparison, TypeScript is used in over 15 million repositories.

Features
It supports writing types for libraries in the  format, which is somewhat similar to the   format; however it uses Flow types rather than TypeScript types, which leads to some differences. In addition, it supports checking the types of objects using exact object types, which has been the default in Flow since v0.202. One of TypeScript's major pain points is its lack of support of exact object types.

One of the major benefits of Flow is that it forces the use of explicit type annotations on a module level, which prevents mistakes when deciding SemVer bumps. Additionally, while it is slower,  it is considerably more complete.

History

 * Flow was first announced in 2014, and open-sourced at that time.
 * In February 2015, Flow introduced typecasting and added support for defining types meant to be used outside the current module. In comparison, TypeScript added support for   declarations in early 2020.
 * Later in February 2015, Flow introduced Flow comments, which allows writing type annotations as comments rather than as a syntax extension. They are now one of the most common usages of Flow; in comparison, TypeScript is far more commonly used with its syntax extension.
 * In 2016, Flow added support for Windows.
 * In 2020, a major rework of Flow's architecture was completed, offering up to 6 times faster type-checking.
 * In 2021, Facebook announced that Flow would, going forward, be prioritizing internal users of Flow at Facebook, although it would remain open-source.
 * In 2023, Flow announced that it had completed the transition to switch Exact Object Types on by default.