TypeScript 泛型用于在可复用类型或函数中保留参数之间的类型关系,并通过约束说明允许的操作。
泛型函数与键约束
泛型保留输入、输出之间的类型关系,而不只是把具体类型替换成 any:
function pick<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const count = pick({ count: 3 }, "count"); // number
这里 K 只能是 T 的键,返回值类型随选中的键变化。约束说明函数需要哪些能力,避免对任意 T 假设其有 length 等属性。