TypeScript Academy · Урок

Типы объектов, необязательные и readonly-свойства, индексные сигнатуры

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

Урок 1 из 38 шагов

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

Введение

Цель: научиться описывать структурированные объекты в TypeScript. Вы изучите типы объектов, необязательные свойства, модификаторы только для чтения и сигнатуры индекса для динамических ключей.

Базовый объект

Типы объектов задают имена свойств и их типы. Каждый объект должен соответствовать объявленной структуре.

type User = {
  id: number;
  name: string;
};

const u: User = { id: 1, name: "Ada" };
console.log(u);

Необязательное свойство

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

type User = {
  id: number;
  name: string;
  email?: string; // optional
};

const a: User = { id: 1, name: "Ada" };
const b: User = { id: 2, name: "Lin", email: "l@example.com" };

Свойство только для чтения

Только для чтения означает, что свойства нельзя переназначить после инициализации. Это удобно для констант и объектов конфигурации.

type Config = {
  readonly version: number;
  name: string;
};

const cfg: Config = { version: 1, name: "App" };
// cfg.version = 2; // Error, readonly

Индексная сигнатура

Индексные сигнатуры разрешают неизвестные имена свойств определённого типа. Например, ключи являются строками, а значения — числами.

type Dictionary = {
  [key: string]: number;
};

const scores: Dictionary = { math: 95, eng: 88 };
console.log(scores["math"]);

Сочетание концепций

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

type Settings = {
  readonly id: string;
  theme?: "light" | "dark";
  [extra: string]: string | number | undefined;
};

const s: Settings = { id: "abc", theme: "dark", fontSize: 14 };
console.log(s);

Проверка необязательного свойства

Быстрая проверка: что означает знак "?" после свойства?

Итоги

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

Можно начать бесплатно

Изучай TypeScript с ИИ-репетитором — бесплатно

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

Курсы
101
Уроки
352

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

Урок «Типы объектов, необязательные и readonly-свойства, индексные сигнатуры» бесплатный?

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

Чему я научусь в уроке «Типы объектов, необязательные и readonly-свойства, индексные сигнатуры»?

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

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

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

Сколько времени занимает урок «Типы объектов, необязательные и readonly-свойства, индексные сигнатуры»?

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

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

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

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

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