За что я люблю TypeScript и не люблю Flow.
По количеству фич TypeScript и Flow практически одинаковы и на самом деле холивар разводить не стоит. Хотя отличия все же присутсвуют, например,
у TypeScript есть дополнительные примитивы для классов, реализующие полноценное ООП, числовые и строковые enum‘ы, а Flow умеет проходится по коду и предугадывать типы значений.
Первая вещь которая мне не нравится во Flow, то что он приучает писать невалидный код в .js файлах. Если однажды ваш коллега по отрасли вдруг захочет скопировать, например, ваш компонент себе в проект не заглянув в исходный код, то у него ничего не получится, его сборщик сломается и ему придется задуматься о дополнительном слое сборки или даже о выносе кода в отдельный модуль, скорее всего, уже после того как он уже назвал примерные сроки, что может привести к проблемам с дедлайном. Также джуниоры, которые вместо ванильного js увидят вот это вот все с типами, могут сильно испугаться. В TypeScript, аналогично jsx и другим препроцессорам, файлы имеют явно расширения .ts или .tsx. Про поддержку в IDE я ничего говорить не стану, хотя интуиция подсказывает что тут проблемы тоже скорее всего всплывут.
PS: если мы используем flow comment types то все ок.
Второй минус flow в том, что он написан на мало известном для javascript сообщества языке — ocaml. Это замедлит его развитие, и если однажды фейсбук откажется от него, то умрет он в ту же секунду!
Напоследок наброшу субъективного:
Для flow мало тайпингов у внешних библиотек, большинство из них частичны.
По flow гораздо меньше обучающих материалов, в то время как по TypeScript даже есть курс на coursera.
У typescript почти в 2 раза больше звездочек на github, несмотря на то, что оба проекта начались в 2014 году.