什么是泛型?写一个带约束的泛型函数。
泛型让类型参数化,在调用时才确定具体类型,兼顾复用与类型安全。
// 无约束
function identity<T>(value: T): T { return value }
// 约束:T 必须有 length 属性
function longest<T extends { length: number }>(a: T, b: T): T {
return a.length >= b.length ? a : b
}
longest('abc', 'de') // ok
longest([1, 2, 3], [4]) // ok
// longest(1, 2) // ❌ number 没有 length常见位置:容器类(Array<T>)、工具函数、React 组件 props。约束用 extends 限制 T 的形状。