0Pricing
TypeScript Academy · Урок

Флаги строгости

Включите строгий режим для более безопасного кода: strict, noImplicitAny, exactOptionalPropertyTypes, noUncheckedIndexedAccess.

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

Введение

Цель: включить и понять основные флаги строгой проверки. Эти параметры позволяют обнаруживать ошибки раньше и улучшают подсказки в IDE.

  • strict
  • noImplicitAny
  • exactOptionalPropertyTypes
  • noUncheckedIndexedAccess

strict и noImplicitAny

strict включает набор проверок, а noImplicitAny запрещает параметры и переменные без типа, для которых по умолчанию используется any.

// tsconfig.json (excerpt)
{
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true
  }
}

// Effect demo
function sum(a, b) { // Error: implicit any
  return a + b;
}

function sumOk(a: number, b: number): number {
  return a + b;
}

exactOptionalPropertyTypes

exactOptionalPropertyTypes различает отсутствующее поле и присутствующее, но имеющее значение undefined — это особенно удобно при моделировании API.

// exactOptionalPropertyTypes: true
interface User { name?: string }

const u1: User = {};          // ok: name is absent
const u2: User = { name: undefined }; // Error when exactOptionalPropertyTypes is true

function greet(u: User) {
  if ("name" in u) {
    // name exists but could be undefined without this flag
    console.log("Hi", u.name);
  }
}

Доступ по индексу (массив)

Теперь обращение к массиву по индексу возвращает T | undefined. Проверяйте значение перед использованием, чтобы избежать сбоев во время выполнения.

// noUncheckedIndexedAccess: true
const xs: number[] = [1,2,3];
const maybe = xs[5]; // type: number | undefined
if (maybe !== undefined) {
  console.log(maybe.toFixed(0));
}

Доступ по индексу (отображение)

Результаты обращения по индексу к объектам и Record<K,V> включают undefined, пока наличие значения не доказано.

// Also affects records/maps
const byId: Record<string, { id: string }> = {};
const item = byId["x"]; // { id: string } | undefined
if (item) {
  console.log(item.id);
}

Строгий режим

Начинайте со строгого режима и ослабляйте его только при необходимости. Эти флаги предотвращают распространённые ошибки и почти не создают лишнего шума в новом коде.

// tsconfig.json (excerpt)
{
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true,
    "exactOptionalPropertyTypes": true,
    "noUncheckedIndexedAccess": true
  }
}

Проверка доступа по индексу

Быстрая проверка: что изменяет noUncheckedIndexedAccess?

Повторение

Повторение: strict включает более безопасные значения по умолчанию; noImplicitAny находит отсутствующие типы; exactOptionalPropertyTypes точно моделирует необязательные поля; noUncheckedIndexedAccess требует проверять наличие значений.

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

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

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

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

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

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

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

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

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

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

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

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

  1. Флаги строгости
  2. Настройки target, lib, module и JSX
  3. Ссылки на проекты (введение)
← Назад к TypeScript Academy