Чтобы понять насколько Flow превосходит TS достаточно взглянуть на этот код:
type User = string | undefined
const user: User = undefined
const welcome =
Hello, ${user}
В какой ситуации мне может понадобится «Hello, undefined»? При этом Flow мне скажет Cannot coerce user
На этом преимущества Flow заканчиваются. Раньше многие выбирали Flow, т.к. у него была лучше поддержка Реакта. У TS с этим всё было настолько плохо, что я даже топил за связку JSDoc + d.ts youtube.com/watch?v=6WfUDH…
i recently discovered the JSDoc comment form of TypeScript (typescriptlang.org/docs/handbook/…) and it is a goddamn revelation. i'm making last-minute refactors to election code so much more confidently than I otherwise could, but I'm not imposing TS on my coworkers
Подробнее про это см. typescriptlang.org/docs/handbook/…
Даже сегодня такой подход находит сторонников среди лидеров мнений - twitter.com/rich_harris/st…
Если вы пишите на Vue 2, то скорее всего у вас нет другого выбора, кроме JSDoc + ts-check связки.
Но потом Microsoft напряглись и бросили все силы на поддержку React. И у них отлично получилось.
В итоге, выбирать Flow было плохой идеей еще в 2017 году, а сегодня за такое можно вообще в дурку попасть.
Так в чем же проблема заехать полностью на TS и забыть про JS?
Проблема в «Embrace, Extend, and Extinguish».
«Поддержать, надстроить и уничтожить» — фраза, которая, как было установлено Министерством юстиции США, использовалась в корпорации Microsoft ...
... чтобы описать их стратегию внедрения в отрасли программного обеспечения, использующего широко распространённые стандарты, путём расширения этих стандартов и дальнейшего использования этих отличий для получения преимущества над конкурентами.
en.wikipedia.org/wiki/Embrace,_…
Заиграл ли новыми красками TypeScript-слоган «TS это всего лишь надстройка над JS»?
Поддержать, надстроить и уничтожить.
Я понимаю, что это звучит как «покайтесь, ибо грядет», но если оставить Microsoft без конкуренции, то JS-сообществу может быть нанесен сильный урон.
Поэтому, разумно будет поддержать Flow и др. инициативы, типа hegel.js.org, чтобы оказывать постоянное давление на TS