PassFront
  1. PassFront
  2. База знаний
  3. Основы TypeScript

Как можно отключить строгую типизацию в TS для определенных мест?

Основы TypeScript

Строгость TypeScript можно ослабить локально — в конкретном месте, файле или для отдельной проверки.

В конкретной строке

// @ts-expect-error — тип из библиотеки неверен, issue #123
legacyLib.init(options);

@ts-expect-error лучше, чем @ts-ignore: если ошибка исчезнет, компилятор сообщит, что комментарий больше не нужен.

Для значения

const data = JSON.parse(raw) as unknown;      // безопасно: потом сузить
const anyValue = legacyValue as any;          // крайняя мера

Для файла

// @ts-nocheck

Отключает проверку всего файла — используют при постепенной миграции.

В конфиге

strict: false или отдельные флаги (strictNullChecks, noImplicitAny) — для всего проекта, обычно временно.

Как держать под контролем

Каждое ослабление — с комментарием почему; правила ESLint (ban-ts-comment, no-explicit-any) заставляют это делать.

Коротко для собеседования

@ts-expect-error для строки, as unknown/any для значения, @ts-nocheck для файла, флаги tsconfig для проекта; всегда с объяснением.

Подробнее: TypeScript — Comments to suppress errors

Другие вопросы раздела