В настоящее время я изучаю React, и я думаю, что я это хорошо понимаю. Однако есть одна вещь, которая беспокоила меня в отношении разработки надежных приложений React - какие инструменты используют разработчики для проверки статического типа?
Мне очень нравится TypeScript. Я думаю, что это значительно уменьшает боль при разработке приложений JavaScript, благодаря проверке типов и другим опрятным функциям. Visual Studio Code также предлагает действительно хорошее завершение кода. И я знаю, что я могу заставить его работать с React, используя typings + DenifitelyTyped.
Дело в том, что не много учебников об использовании React + TypeScript. Там также не так много статей о разработке с использованием этого комбо. С другой стороны, многие люди, кажется, используют Flow, который является проектом, поддерживаемым Facebook (и я предполагаю, что они также используют его).
Мне удалось найти обсуждение Reddit с плюсами и минусами относительно перехода на React + TypeScript/React + Flow, Однако мне кажется, что он довольно устарел, так как сейчас около 10 месяцев. Я думаю, что многое изменилось с тех пор.
Я также нашел две статьи об использовании React + Flow и Изменить + TypeScript. Автор заявляет о некоторых проблемах, с которыми он сталкивается при использовании обоих опций, и приходит к выводу, что TypeScript является лучшим вариантом прямо сейчас (ноябрь 2015 г.), особенно потому, что проект Flow имеет много проблем и получает низкую активность разработчика от Facebook. Он также упоминает, что он не хорошо играет с Вавилоном?
Итак, я думаю, вопрос будет: безопасно ли использовать комманду React + TypeScript, или я столкнусь с некоторыми трудностями? Как насчет Потока? Есть ли другие подобные инструменты, которые я должен проверить? Какой подход вы бы порекомендовали?
Обновление сентябрь 2017 года:
Имея более чем год опыта ежедневного использования TypeScript и играя с Flow на некоторое время, я пришел к следующим выводам:
- TypeScript по-прежнему остается болезненным для использования по сей день. Проблема в том, что мир JavaScript движется так быстро, что TypeScript продолжает отставать. Размышление об использовании этой новой модели ES7 Stage 3? Нет, вы не можете. Желаете получить подсказки типа для последней версии некоторой библиотеки? Подождите месяц или два, может быть, больше...
- Поток прошел долгий путь, он значительно улучшился, он может поймать некоторые вещи, которые TS не может. Лучше всего, он, наконец, работает в Windows. Кроме того, есть отличный плагин для VS Code (не знаю, почему он имеет только 3/5 рейтинга). И он работает на 100% с React Native, TypeScript еще не на 50%.
- В большинстве случаев вам не нужны типы вообще. Вся дополнительная типизация редко стоит того. JS - динамически типизированный язык, преодолевать его:)
TL; DR: Если вы планируете использовать любой тип проверки, я рекомендую использовать Flow.