0Pricing
TypeScript Academy · Урок

Объединения и литеральные типы (введение в базовое сужение типов)

Объединяйте типы с помощью объединений, используйте литеральные типы для точных значений и применяйте базовое сужение типов.

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

Введение

Цель: узнать, как объединять несколько типов с помощью union и ограничивать значения с помощью типов литералов. Это помогает создавать более безопасные API.

Основы объединений

Объединения типов используют |, чтобы разрешить один из нескольких типов. В данном случае это строка или число.

let value: string | number;
value = "hello";

value = 42;

// value = true; 
// Error, not allowed

Типы литералов

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

let direction: "left" | "right";
direction = "left";

// direction = "up";
 // Error

Основы сужения типов

Сужение типов проверяет тип во время выполнения (например, typeof), чтобы безопасно обращаться к членам.

function printId(id: string | number) {
  if (typeof id === "string") {
    console.log(id.toUpperCase());
  } else {
    console.log(id.toFixed(2));
  }
}

printId("abc");
printId(123.456);

Дискриминированные объединения

Дискриминированные объединения объединяют литеральные метки с объектами. Сужение по kind позволяет TypeScript понимать структуру данных.

type Shape =
  | { kind: "circle"; radius: number }
  | { kind: "square"; size: number };

function area(shape: Shape): number {
  if (shape.kind === "circle") {
    return Math.PI * shape.radius ** 2;
  } else {
    return shape.size * shape.size;
  }
}

console.log(area({ kind: "circle", radius: 2 }));
console.log(area({ kind: "square", size: 3 }));

Зачем нужны объединения и литералы

Зачем использовать объединения и литералы? Они делают недопустимые состояния невозможными, улучшают автодополнение и позволяют компилятору раньше обнаруживать ошибки.

Проверка объединений

Быстрая проверка: что такое объединение типов?

Итоги

Итоги: используйте | для объединений, типы литералов для точных значений, а сужение типов — для безопасного выбора ветки. Эти инструменты делают TS выразительным и безопасным.

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

Урок «Объединения и литеральные типы (введение в базовое сужение типов)» бесплатный?

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

Чему я научусь в уроке «Объединения и литеральные типы (введение в базовое сужение типов)»?

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

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

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

Сколько времени занимает урок «Объединения и литеральные типы (введение в базовое сужение типов)»?

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

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

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

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

  1. Примитивные типы и аннотации
  2. Вывод типов и any против unknown
  3. Объединения и литеральные типы (введение в базовое сужение типов)
← Назад к TypeScript Academy