Использование TypeScript¶
TypeScript — это язык, расширяющий JavaScript путем добавления определений типов. Новые проекты React Native по умолчанию используют TypeScript, но также поддерживают JavaScript и Flow.
Начало работы с TypeScript¶
Новые проекты, созданные с помощью React Native CLI или популярных шаблонов, таких как Ignite, по умолчанию будут использовать TypeScript.
TypeScript также можно использовать с Expo, который поддерживает шаблоны TypeScript или предложит вам автоматически установить и настроить TypeScript, когда файл .ts
или .tsx
будет добавлен в ваш проект.
1 |
|
Добавление TypeScript в существующий проект¶
1. Добавьте TypeScript, типы и плагины ESLint в свой проект.
1 |
|
1 |
|
Эта команда добавляет последнюю версию каждой зависимости. Возможно, потребуется изменить версии, чтобы они соответствовали существующим пакетам, используемым в вашем проекте. Вы можете использовать такой инструмент, как React Native Upgrade Helper, чтобы посмотреть версии, поставляемые React Native.
2. Добавьте файл конфигурации TypeScript. Создайте tsconfig.json
в корне вашего проекта:
1 2 3 |
|
3. Переименуйте файл JavaScript в *.tsx
.
Вам следует оставить файл точки входа ./index.js
как есть, иначе вы можете столкнуться с проблемой, когда дело дойдет до комплектации производственной сборки.
4. Запустите yarn tsc
, чтобы проверить тип ваших новых файлов TypeScript.
Использование JavaScript вместо TypeScript¶
React Native по умолчанию устанавливает в новых приложениях TypeScript, но JavaScript все еще может использоваться. Файлы с расширением .jsx
рассматриваются как JavaScript, а не TypeScript, и не будут проверяться. Модули JavaScript по-прежнему могут импортироваться модулями TypeScript, равно как и наоборот.
Как работает TypeScript и React Native¶
Исходные тексты TypeScript преобразуются Babel при компоновке. Мы рекомендуем использовать компилятор TypeScript только для проверки типов. Это поведение tsc
по умолчанию для вновь создаваемых приложений. Если вы переносите существующий код TypeScript на React Native, есть одна или две оговорки в использовании Babel вместо TypeScript.
Как выглядит React Native + TypeScript¶
Вы можете предоставить интерфейс для Props
и State
React Component через React.Component<Props, State>
, который обеспечит проверку типов и автозавершение редактора при работе с этим компонентом в JSX.
components/Hello.tsx | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
|
Вы можете подробнее изучить синтаксис в TypeScript playground.
Где найти полезные советы¶
- Справочник по TypeScript
- документация React по TypeScript.
- React + TypeScript Cheatsheets содержит хороший обзор того, как использовать React с TypeScript.
Использование пользовательских псевдонимов путей с помощью TypeScript¶
Чтобы использовать пользовательские псевдонимы путей с TypeScript, необходимо настроить псевдонимы путей для работы как в Babel, так и в TypeScript. Вот как это сделать:
1. Отредактируйте ваш tsconfig.json
, чтобы иметь ваши пользовательские сопоставления путей. Установите, чтобы все, что находится в корне src
, было доступно без предшествующей ссылки на путь, и разрешите доступ к любому тестовому файлу с помощью tests/File.tsx
:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
2. Добавьте babel-plugin-module-resolver
в качестве пакета разработки в свой проект:
1 |
|
1 |
|
3. Наконец, настройте ваш babel.config.js
(обратите внимание, что синтаксис вашего babel.config.js
отличается от вашего tsconfig.json
):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|