0Pricing
TypeScript Academy · Урок

Параметры типов по умолчанию

Задавайте резервные типы, если аргумент не передан

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

Добро пожаловать

Параметры типов по умолчанию предоставляют резервный тип, если вызывающий код не указывает аргумент типа. Они делают обобщённые API удобнее.

Синтаксис значения по умолчанию

Добавьте `= DefaultType` после имени параметра типа, чтобы задать значение по умолчанию.
interface Container<T = string> {
  value: T;
}
const c: Container = { value: 'hello' }; // T defaults to string
const n: Container<number> = { value: 42 };

Значения по умолчанию в обобщённых функциях

У параметров типов функций также могут быть значения по умолчанию, хотя это используется реже, поскольку TypeScript обычно выводит тип самостоятельно.
function createList<T = string>(): T[] { return []; }
const list = createList(); // T is string by default

Значения по умолчанию с ограничениями

У параметра типа одновременно могут быть ограничение и значение по умолчанию. Значение по умолчанию должно удовлетворять ограничению.
interface Event<T extends object = Record<string, unknown>> {
  type: string;
  payload: T;
}

Значения по умолчанию в компонентах, подобных React

Параметры типов по умолчанию часто используются в обобщениях библиотек пользовательского интерфейса для свойств компонентов.
interface SelectProps<T = string> {
  options: T[];
  value: T;
  onChange: (val: T) => void;
}

Несколько значений по умолчанию

Для каждого из нескольких параметров типов можно задать значение по умолчанию.
type Pair<A = string, B = number> = { first: A; second: B };
const p: Pair = { first: 'hello', second: 42 }; // A=string, B=number

Последующие параметры типов тоже требуют значений по умолчанию

Если вы хотите использовать значение по умолчанию для последующего параметра типа, все предыдущие параметры без значений по умолчанию необходимо указать.
type Map<K = string, V = unknown> = Record<K extends string ? K : string, V>;
const m: Map = {}; // K=string, V=unknown by default

Когда TypeScript игнорирует значение по умолчанию

Если TypeScript может вывести аргумент типа из контекста, он использует выведенный тип, даже если задано значение по умолчанию.
function wrap<T = string>(val: T): T { return val; }
const n = wrap(42); // T is number, not string (inferred)

Явное переопределение

Явно указанный аргумент типа всегда переопределяет значение по умолчанию.
interface Box<T = string> { item: T; }
const numBox: Box<number> = { item: 100 }; // T explicitly number

Значения по умолчанию в обобщённых классах

У обобщённых классов также могут быть параметры типов со значениями по умолчанию.
class Stack<T = unknown> {
  private items: T[] = [];
  push(item: T) { this.items.push(item); }
  pop(): T | undefined { return this.items.pop(); }
}

Значения по умолчанию упрощают использование обобщённых библиотек

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

Быстрая проверка

Для `interface Box` каким будет тип `.value` в `const b: Box = { value: 99 }`?

Итоги

Параметры типов по умолчанию (T = DefaultType) предоставляют резервные типы, если вызывающий код не указывает тип. Они особенно полезны в интерфейсах, объявлениях классов и API библиотек, поскольку сокращают шаблонный код.

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

Урок «Параметры типов по умолчанию» бесплатный?

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

Чему я научусь в уроке «Параметры типов по умолчанию»?

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

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

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

Сколько времени занимает урок «Параметры типов по умолчанию»?

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

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

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

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

  1. Обобщённые функции: параметры типов
  2. Обобщённые интерфейсы и псевдонимы типов
  3. Ограничения обобщений с помощью extends
  4. Параметры типов по умолчанию
← Назад к TypeScript Academy