TypeScript Academy · Урок

keyof и типы индексированного доступа (введение)

Используйте keyof для создания объединений имён свойств, а типы индексированного доступа (T[K] / T["prop"]) — для безопасного чтения типов свойств.

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

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

Введение

Цель: создавать более безопасные вспомогательные функции с помощью keyof (объединений имён свойств) и индексированного доступа (T[K]) для чтения типов свойств.

keyof

keyof создаёт объединение имён свойств типа (например, "id" | "name" | "email").

interface User {
  id: number;
  name: string;
  email?: string;
}

type UserKeys = keyof User;  // "id" | "name" | "email"

keyof typeof

Используйте keyof typeof, чтобы получить ключи из значения (объекта) для типизации параметров.

const SETTINGS = {
  theme: "dark",
  lang: "en",
} as const;

type SettingKey = keyof typeof SETTINGS; // "theme" | "lang"

Индексированный доступ

Индексированный доступ возвращает тип свойства: User["name"] — это string.

interface User {
  id: number;
  name: string;
  email?: string;
}

type NameType = User["name"]; // string

Вспомогательная функция getProperty

Объедините keyof с K extends keyof T, чтобы ограничить ключи и возвращать точный тип T[K].

function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
  return obj[key];
}

const u = { id: 1, name: "Ada" };
const v1 = getProperty(u, "name"); // string
const v2 = getProperty(u, "id");   // number
console.log(v1.toUpperCase(), v2.toFixed(0));

Советы

Советы:

  • Предпочитайте keyof typeof для получения ключей из объектов.
  • Используйте T[K], чтобы отражать типы свойств без дублирования моделей.
  • Избегайте ключей, заданных произвольными строками; используйте объединения для безопасности.

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

Быстрая проверка: Что представляет T[K]?

Итоги

Итоги: keyof задаёт объединения ключей; keyof typeof выводит ключи из значений; T[K] считывает типы свойств — это идеально для безопасных вспомогательных функций.

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

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

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

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

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

Урок «keyof и типы индексированного доступа (введение)» бесплатный?

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

Чему я научусь в уроке «keyof и типы индексированного доступа (введение)»?

Используйте keyof для создания объединений имён свойств, а типы индексированного доступа (T[K] / T["prop"]) — для безопасного чтения типов свойств. Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

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

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

Сколько времени занимает урок «keyof и типы индексированного доступа (введение)»?

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

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

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

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

  1. Обобщённые функции и ограничения (extends, параметры по умолчанию)
  2. Partial, Readonly, Record, Pick и Omit
  3. keyof и типы индексированного доступа (введение)
← Назад к TypeScript Academy