Check Official site http://flowtype.org/
As its documentation says,
At the same time, Flow is a gradual type system. Any parts of your program that are dynamic in nature can easily bypass the type checker, so you can mix statically typed code with dynamic code.
Flow also supports a highly expressive type language. Flow types can express much more fine-grained distinctions than traditional type systems. For example, Flow helps you catch errors involving
null, unlike most type systems.”
refer its documentation http://flowtype.org/docs/getting-started.html
you can also use it to check existing code.