0Pricing
TypeScript Academy · Урок

Структурная типизация и проверки лишних свойств

Разберитесь со структурной типизацией в TypeScript и узнайте, как проверки лишних свойств предотвращают непреднамеренные структуры объектов.

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

Введение

Цель: изучить структурную типизацию, при которой совместимость зависит от наличия нужных элементов, а также понять, как работают проверки избыточных свойств с литералами объектов.

Структурная типизация

Структурная типизация: совместимость определяется структурой. Если объект содержит как минимум все обязательные свойства, он принимается, даже если в нём есть дополнительные свойства.

interface Point { x: number; y: number; }

function logPoint(p: Point) {
  console.log(p.x, p.y);
}

const a = { x: 5, y: 7, z: 99 };
logPoint(a); // OK because it has x and y

Именованная и структурная типизация

В отличие от номинативных систем, Point2D и Коорд совместимы, потому что имеют одинаковую структуру.

type Point2D = { x: number; y: number };
type Coord = { x: number; y: number };

const p: Point2D = { x: 1, y: 2 };
const q: Coord = p; // OK, same structure

Ошибка проверки избыточных свойств

Проверки избыточных свойств применяются к литералам объектов, присваиваемым напрямую. Дополнительные свойства, отсутствующие в целевом типе, вызывают ошибки.

interface User { id: number; name: string }

const u: User = { id: 1, name: "Ada", age: 30 }; // Error: excess property "age"

Обход проверки

Присваивание через переменную обходит проверки избыточных свойств. Это обеспечивает гибкость, но следует остерегаться непреднамеренных свойств.

const raw = { id: 1, name: "Ada", age: 30 };
const u: User = raw; // OK, because variable assignment skips excess check

Рекомендации

Рекомендации:

  • Структурная типизация делает TS гибким.
  • Проверки избыточности помогают рано обнаруживать ошибки.
  • Используйте переменные, если дополнительные поля добавлены намеренно.

Проверка структурной типизации

Быстрая проверка: какое утверждение о структурной типизации верно?

Итоги

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

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

Урок «Структурная типизация и проверки лишних свойств» бесплатный?

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

Чему я научусь в уроке «Структурная типизация и проверки лишних свойств»?

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

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

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

Сколько времени занимает урок «Структурная типизация и проверки лишних свойств»?

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

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

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

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

  1. Типы объектов, необязательные и readonly-свойства, индексные сигнатуры
  2. Интерфейсы и псевдонимы типов
  3. Структурная типизация и проверки лишних свойств
← Назад к TypeScript Academy