Как работают рекурсивные типы в TypeScript?
УглублённыйПродвинутые типы
- Типы, ссылающиеся сами на себя:
type ListNode<T> = { value: T; next: ListNode<T> | null }
- Применения: связные списки, деревья, JSON (
type JSON = string | number | boolean | null | JSON[] | { [key: string]: JSON })
- Глубокие трансформации:
DeepPartial, DeepReadonly, DeepRequired
- Лимит глубины ~50 уровней, ~1000 с хвостовой оптимизацией (TS 4.5+)
- Ошибка
Type instantiation is excessively deep при превышении
- Рекурсивные условные типы (TS 4.1+)