0Pricing
TypeScript Academy · Урок

Флаг strict и его возможности

Разберитесь в strictNullChecks, noImplicitAny и других настройках

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

Добро пожаловать

Флаг strict в tsconfig включает набор более строгих параметров проверки типов. Понимание назначения каждого из них помогает настроить TypeScript для максимальной безопасности.

Что включает strict

strict: true одновременно включает несколько подфлагов.
// strict enables:
// strictNullChecks, noImplicitAny, strictFunctionTypes,
// strictBindCallApply, strictPropertyInitialization,
// noImplicitThis, useUnknownInCatchVariables, alwaysStrict

strictNullChecks

Не позволяет присваивать null или undefined типам, не допускающим их.
// Without: let s: string = null; // OK
// With: let s: string = null; // Error

noImplicitAny

Требует явно указывать тип там, где TypeScript вывел бы any.
// Without: function fn(x) {} // x: any
// With: // Error: Parameter has implicit any type

strictFunctionTypes

Обеспечивает контравариантность типов параметров функций.
type Fn = (x: string | number) => void;
const fn: Fn = (x: string) => {}; // Error with strict

strictPropertyInitialization

Свойства должны быть инициализированы в конструкторе или помечены символом !.
class C {
  name: string; // Error — not initialized
  // name!: string; // OK — known to be set later
  constructor() { this.name = 'Alice'; } // OK
}

noImplicitThis

Запрещает использовать this с типом any, например в функциях, не принадлежащих классу.

alwaysStrict

Добавляет use strict в каждый выходной файл.

strictBindCallApply

Обеспечивает корректные типы для bind, call и apply у функций.
function add(a: number, b: number): number { return a + b; }
add.call(null, 1, '2'); // Error with strict

Поэтапное включение strict

При переносе большой кодовой базы добавляйте подфлаги strict по одному.
{ "compilerOptions": { "strictNullChecks": true, "noImplicitAny": true } }

strict в новых проектах

Всегда начинайте новые проекты с strict: true. Добавить строгую проверку позже значительно сложнее.

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

Какой подфлаг strict запрещает присваивать null переменной строкового типа?

Итоги

Флаг strict и его возможности: вы освоили основные понятия и паттерны.

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

Урок «Флаг strict и его возможности» бесплатный?

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

Чему я научусь в уроке «Флаг strict и его возможности»?

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

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

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

Сколько времени занимает урок «Флаг strict и его возможности»?

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

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

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

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

  1. Флаг strict и его возможности
  2. Настройка модулей и целевой среды
  3. Псевдонимы путей и baseUrl
  4. Инкрементальные сборки и файлы объявлений
← Назад к TypeScript Academy