PassFront
  1. PassFront
  2. База знаний
  3. Типы и интерфейсы

Когда использовать type в TypeScript?

Типы и интерфейсы

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

Когда нужен type

  • Объединения:
type Status = 'idle' | 'loading' | 'success' | 'error';
type Result = { ok: true; data: User } | { ok: false; error: string };
  • Кортежи: type Point = [x: number, y: number].
  • Типы функций: type Handler = (event: MouseEvent) => void.
  • Вычисляемые типы:
type UserKeys = keyof User;
type ReadonlyUser = Readonly<User>;
type Getters<T> = { [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K] };
  • Псевдонимы для примитивов и сложных выражений: type Id = string.
  • Пересечения: type AdminUser = User & { role: 'admin' }.

Когда можно interface

Для простых объектных форм подходят оба — тут решает договорённость в команде.

Коротко для собеседования

type — для объединений, кортежей, типов функций, вычисляемых и mapped-типов и пересечений; для простых объектов подходит и interface.

Подробнее: TypeScript Handbook — Type Aliases

Другие вопросы раздела