0Pricing
TypeScript Academy · Урок

Начало миграции: allowJs и checkJs

Включите проверку TypeScript в проекте JavaScript

«Начало миграции: allowJs и checkJs» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.

Задача миграции

Одномоментная миграция большой кодовой базы на JavaScript в TypeScript сопряжена с риском. Поэтапный путь заключается в постепенном включении TypeScript, файл за файлом, с сохранением работоспособности проекта.

# Key compiler flags for gradual migration:
# allowJs — allow .js files in the compilation
# checkJs — type-check .js files with JSDoc types

Шаг 1: Установка TypeScript

Добавьте TypeScript в проект и сначала создайте минимальный tsconfig без строгого режима.

npm install --save-dev typescript
npx tsc --init
# Edit tsconfig.json to set allowJs: true

allowJs: true

При значении allowJs: true TypeScript включает файлы .js в компиляцию. Проверка типов выполняется в мягком режиме — большинство файлов JavaScript скомпилируется без ошибок.

{
  "compilerOptions": {
    "allowJs": true,
    "outDir": "./dist",
    "target": "ES2020"
  },
  "include": ["src"]
}

checkJs: true

checkJs: true включает проверку типов в файлах JavaScript с использованием выведенных типов и аннотаций JSDoc. Это позволяет обнаруживать очевидные ошибки без преобразования файлов в .ts.

{
  "compilerOptions": {
    "allowJs": true,
    "checkJs": true
  }
}

Подавление ошибок с помощью @ts-nocheck

Добавьте // @ts-nocheck в начало проблемных файлов JS, чтобы подавить все ошибки TypeScript, пока вы постепенно выполняете миграцию.

// @ts-nocheck
// This file is not yet migrated — errors suppressed
function legacyUtil(x) { return x.foo.bar; }

Подавление ошибок в отдельных строках

Используйте // @ts-ignore, чтобы подавить ошибку в одной строке, не отключая проверку всего файла.

const result = legacyFn(value); // @ts-ignore
// Only this line's error is suppressed

maxNodeModuleJsDepth

По умолчанию TypeScript проверяет файлы JS только в вашем проекте. Задайте maxNodeModuleJsDepth, чтобы управлять глубиной проверки JS в node_modules.

{
  "compilerOptions": {
    "maxNodeModuleJsDepth": 1 // Check 1 level deep in node_modules
  }
}

Компиляция JS в папку сборки

При использовании allowJs компилятор TypeScript также может транспилировать файлы JS — это удобно для единообразного применения полифиллов и нацеливания на более старые среды.

tsc
# Compiles both .ts and .js files to dist/

Отслеживание прогресса

Отслеживайте прогресс миграции, подсчитывая количество файлов .js и .ts. Поставьте цель по доле файлов, преобразуемых за один спринт.

find src -name "*.ts" | wc -l   # TypeScript files
find src -name "*.js" | wc -l   # JavaScript files remaining

Предотвращение регрессии типов

На начальном этапе оставьте noImplicitAny: false, чтобы существующие файлы JS не заполонили ошибки. Включайте этот параметр после преобразования каждого файла в TypeScript.

{
  "compilerOptions": {
    "allowJs": true,
    "noImplicitAny": false // Relax for JS files; enable per .ts file
  }
}

Итоги: начало миграции

Начните миграцию с allowJs: true и checkJs: true, используйте @ts-nocheck для ещё не готовых файлов и отслеживайте прогресс по количеству файлов. Такой подход позволяет сохранять успешную компиляцию проекта во время поэтапного преобразования файлов.

Быстрая проверка

Что делает checkJs: true, не требуя преобразования .js в .ts?

Что вы узнали

Начните миграцию с JS на TS с allowJs: true и, при необходимости, checkJs: true. Используйте @ts-nocheck, чтобы отключать сообщения для ещё не готовых файлов, и поэтапно преобразуйте файлы, отслеживая прогресс по их количеству.

Часто задаваемые вопросы

Урок «Начало миграции: allowJs и checkJs» бесплатный?

Да — полный текст урока «Начало миграции: allowJs и checkJs» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.

Чему я научусь в уроке «Начало миграции: allowJs и checkJs»?

Включите проверку TypeScript в проекте JavaScript Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать TypeScript Academy?

Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Начало миграции: allowJs и checkJs»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке TypeScript Academy?

Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Начало миграции: allowJs и checkJs
  2. Аннотации типов JSDoc как переходный этап
  3. Стратегия преобразования файл за файлом
  4. Работа с нетипизированными сторонними библиотеками
← Назад к TypeScript Academy