One of the interesting aspects in Typescript is that it is easy to extract out individual types from composite types.
While this post primarily compares Reason and TypeScript, much of what is outlined about TypeScript equally applies to flow as well.
However, this is jarring when the rest of your emacs environment is configured to use helm as the completion engine.
Fortunately, this is easy to fix by overriding the
tide-popup-select-item implementation to use a custom helm source derived from the completion list.