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