Typescript (TS) — это круто!😻 Он делает код более понятным, простым в обслуживании и предотвращает распространенные ошибки. После тщательного рассмотрения вы решили, что это лучший выбор для вашей команды, и теперь вы хотите принять его. Ура! 🎉

К сожалению, внедрение TypeScript не так просто, как может показаться… поскольку этот процесс может быть утомительным и занимать много времени. Итак, как перейти с JS на TS?
С чатом GPT! Еще нет 😁. Используя ts-migrate, мы можем упростить этот процесс 💫.

О ts-мигрировать

ts-migrate — это инструмент, предназначенный для облегчения миграции кода на TypeScript. Он может принимать проект на основе JavaScript (JS) или частично на основе TypeScript и создавать на выходе полностью скомпилированный проект TypeScript.

Недавно наша команда использовала ts-migrate для преобразования 1000 файлов в нашем проекте из JS в TS, и это помогло сэкономить время и сделать весь процесс намного удобнее.

Установка и настройка ТС

Перед началом процесса миграции мы должны установить и настроить TS:

  • Установить пакет ТС:
npm install typescript --save-dev
  • Инициализация конфигурации ТС:
npx tsc --init
  • Установите типы React (если вы используете React):
npm install --save-dev @types/react

Примечание. Команда init создаст файл tsconfig.json. Вы можете изменить его позже в соответствии с вашими требованиями.

Преобразование файлов JS в TS

Мы будем использовать ts-migrate для переноса наших файлов JS в TS:

  • Установите ts-мигрировать:
npm install --save-dev ts-migrate
  • Переименуйте файлы JS в соглашение TS:
yarn ts-migrate rename <project-dir> --sources <specific-dir>
  • Преобразование файла JS в формат TS:
yarn ts-migrate migrate <project-dir> --sources <specific-dir>/file.tsx

Примечание. Лучше сначала зафиксировать изменения переименования файлов, а затем зафиксировать преобразование в изменения TS. Таким образом, GIT распознает изменение как изменение одного файла, а не как два отдельных изменения, то есть удаление старого файла и создание нового.

Примечание. Я использую NPM для установки и YARN для выполнения команд ts-migrate. Я обнаружил, что ts-migrate лучше работает с YARN, но вы можете использовать все, что предпочитаете.

Пример 🤓

Я создал этот проект ts-migrate-example, чтобы продемонстрировать процесс миграции. Сначала клонируйте его на свой компьютер:

git clone https://github.com/shai20099/ts-migrate-example.git

Теперь мы перенесем наш первый JS-файл в TS 🚀.
Во-первых, мы собираемся переименовать файл:

yarn ts-migrate rename ./ --sources ./src/examples

После переименования файлов вот такой результат:

Наш следующий шаг — применить сценарий миграции к файлу примера:

yarn ts-migrate migrate ./ --sources ./src/examples/example.ts

Теперь мы можем увидеть некоторые возможности ts-migrate 🪄

Примечание. Если ts-migrate не может автоматически устранить проблемы с TS, он оставляет комментарий @ts-expect-error с подробными сведениями об ошибке.

Примечание. Несмотря на то, что ts-migrate помещает типы в переменные там, где это необходимо, нам все равно нужно помнить о замене любых типов на определенные.

Примечание. ts-migrate использует подключаемые модули для автоматического внесения изменений. Вы можете заставить его выполнять больше действий автоматически, создав собственные плагины для своего проекта. Подробнее здесь.

Краткое содержание

Ts-migrate — это инструмент, помогающий перенести код с JavaScript (JS) на TypeScript (TS). Его основная цель — создание скомпилированного кода с автоматическим исправлением некоторых ошибок с помощью плагинов. Хотя это и не полностью автоматизировано, мы обнаружили, что ts-migrate — невероятно ценный инструмент. Он умеет выявлять пробелы между JS и TS, исправлять то, что может, и помечать код, который необходимо исправить вручную. Такой подход значительно экономит время при переносе, особенно при работе с большим количеством файлов.

Удачи! 😃