PassFront
  1. PassFront
  2. База знаний
  3. Основы TypeScript

Какая иерархия типов в TypeScript?

Основы TypeScript

Типы TypeScript образуют иерархию от самого широкого `unknown` до самого узкого `never`.

Уровни

  • `unknown` — верхний тип: ему можно присвоить что угодно, но использовать без проверки нельзя.
  • `any` — выпадает из иерархии: совместим со всем в обе стороны и отключает проверки.
  • Примитивы и `object` — string, number, boolean, bigint, symbol, null, undefined, объектные типы.
  • Литеральные типы — подтипы примитивов: 'ok' ⊂ string, 42 ⊂ number.
  • `never` — нижний тип: присваивается чему угодно, но ему не присвоить ничего.
let a: unknown = 'text';   // ок
let s: string = 'ok';
let lit: 'ok' = 'ok';
s = lit;                   // ок: литерал — подтип string
lit = s;                   // ошибка

Объединения и пересечения

A | B шире каждого из вариантов, A & B — уже. Объектный тип с большим числом свойств — подтип типа с меньшим (структурная типизация).

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

Сверху unknown, снизу never, между ними примитивы, объекты и литералы; any стоит вне иерархии и отключает проверки.

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

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