Как перейти с Javascript на Typescript с помощью инструмента ts-migrate

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

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

Ой… Это не так просто, как кажется, принять TS . Это очень утомительно и требует много времени. Итак, как перейти с 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
    

    npm install --save-dev @types/react
    

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

  • Установите ts-мигрировать:
  • npm install --save-dev ts-migrate
    

    yarn ts-migrate rename <project-dir> --sources <specific-dir>
    

    yarn ts-migrate migrate <project-dir> --sources <specific-dir>/file.tsx
    

Пример

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

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

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

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

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

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

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

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

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

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

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

Удачи!