Using Flow
Flow is mainly a static type checker for JavaScript code. The purpose of a static type checker is to ensure at build time that everything works together as it should. As a result, we should see a lot fewer errors at runtime. In fact, proper usage of a static type checker will essentially eliminate all simple bugs and let us focus on solving the algorithmic and behavioral issues that would arise anyway.
In Flow, every JavaScript file can be changed to a Flow file. All that needs to be done is to introduce the @flow
comment. A simple example is as follows:
// @flow
function square(n: number): number {
return n * n;
}
square("2"); // Error!
Even though the code would work pretty well in standard JavaScript, Flow will help us by raising an error in the last line. The square
function has been annotated using types for the n
input argument and the return value. The colon notation separates the identifier or function head from the specified type.