TypeScript-面试-泛型
2026年10月16日·Admin·1 次浏览
面试题:泛型是什么?约束与默认类型参数?
作用
延迟指定类型:在定义时写占位符 T,在使用时再代入具体类型,实现类型安全的复用(数组、Promise、函数、类等)。
function id<T>(x: T): T { return x }
约束 extends
function len<T extends { length: number }>(x: T) { return x.length }
限制 T 至少有 length,否则编译报错。
默认类型参数
interface Box<T = string> { value: T }
常见考点
- 泛型在推断失败时可能退化为
unknown或{},需显式传参。 - 泛型与联合分配:
T extends X ? A : B在条件类型里会分配到联合成员(distributive),需知never吸收规则。