Типы объектов, необязательные и readonly-свойства, индексные сигнатуры
Определяйте типы объектов со свойствами, помечайте некоторые свойства как необязательные или readonly и используйте индексные сигнатуры для гибких ключей.
«Типы объектов, необязательные и 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 — локальная установка не требуется.
Все уроки этого курса
- Типы объектов, необязательные и readonly-свойства, индексные сигнатуры
- Интерфейсы и псевдонимы типов
- Структурная типизация и проверки лишних свойств