Перейти к основному содержимомуКак работают ограничения дженериков (`T extends`) в TypeScript?
СобеседованиеДженерики
T extends U — верхняя грань: T должен быть совместим с U
- Структурное ограничение:
T extends { length: number } — T должен иметь свойство length
- Ключевое ограничение:
K extends keyof T — K должен быть ключом T
- Множественные ограничения через пересечение:
T extends A & B
const type parameters (TS 5.0+): <const T> — авто-сужение до литералов без as const
NoInfer<T> (TS 5.4+): предотвращает вывод типа из конкретной позиции