Это чисто мое мнение, основанное на опыте работы над Typescript и React Native за последние пару месяцев. Так что, прежде чем разглагольствовать, дочитайте пост.

После некоторого времени работы с React Native и Typescript я понял, что нет веских причин для его использования. Я имею в виду это, серьезно. Поясню свои рассуждения:

  • Он компилируется в Javascript.

Итак, если в конце концов поставляемый код будет написан на Javascript, почему бы просто не использовать Javascript с самого начала? Я имею в виду, что вы уже тратите много времени на настройку машинописного текста, правил и многого другого.

  • В зависимости от типов.

Вы зависите от типов из DefinitelyTyped или, что еще хуже, от написания собственных типов, если вы хотите использовать какую-либо библиотеку, вам нужен файл типов, разумеется, большинство библиотек Javascript не имеют определений машинописных текстов. Теперь в вашем коде больше частей, больше частей, которые могут выйти из строя самым ужасным образом.

  • Вы чрезмерно усложняете код.

Я понимаю, что каждый класс, TSX по сравнению с JS, имеет примерно на 10-20% больше кода только для использования типов и определений, просто чтобы заставить его работать. Кроме того, труднее найти разработчиков с опытом работы с Typescript, использующих React или React Native.

  • Нет встроенной поддержки.

Это ОГРОМНЫЙ минус. Если вы хотите использовать типы, просто используйте Flow, он поддерживается Javascript, React и React Native и очень прост в использовании.

Кроме того, у вас есть хорошие библиотеки для Visual Studio Code, Atom, Emacs, Vim или любого другого текстового редактора/IDE, который вы используете.

Поверьте мне, я понимаю, почему важно печатать, это делает ваш код более понятным (иногда), безопаснее и не требует пояснений, это круто, но когда дело доходит до печати, Flow работает намного лучше, он делает вывод, какие типы вы вводите. повторное использование, даже если вы не объявляете типы.

  • При использовании Typescript обновление React Native усложняется

Если вы обновите свои библиотеки React и React Native с помощью руководства, приведенного в документации по React, и используете Typescript, у вас будут плохие времена. Почему? Потому что теперь вам нужно обновить типы DefinitelyTyped для react и react native, а затем типы DefinitelyTyped для каждой библиотеки, которую вы используете, это скучно и утомительно. О, и иногда они просто терпят неудачу, иногда из-за какой-то конфигурации или изменения Typescript, иногда просто потому, что «почему бы и нет»?

Не волнуйтесь, я не говорю вам, что Typescript — плохой инструмент. Это удивительно, если вы используете универсальный Angular, это, безусловно, лучший способ. Все было построено с использованием Typescript, то же самое с внешними библиотеками. И я должен сказать, что за последние годы MS сделала несколько УДИВИТЕЛЬНЫХ крутых вещей, таких как Visual Studio Code, App Center, .Net с открытым исходным кодом и многое другое. Они пользуются моим уважением. Но в данном конкретном случае я не думаю, что Typescript — лучший вариант для вашего проекта React Native.