在 TypeScript 中,泛型约束(Generic Constraints)是一种用于限制泛型类型的特性。它允许开发者指定泛型类型必须满足的一些条件或接口。
function functionName<T extends InterfaceName>(parameter: T): T {
// 函数体
return parameter;
}
interface HasLength {
length: number;
}
function getLength<T extends HasLength>(arg: T): number {
return arg.length;
}
console.log(getLength('hello')); // 输出: 5
console.log(getLength([1, 2, 3])); // 输出: 3
console.log(getLength(42)); // 错误: number 不满足 HasLength 接口
除了使用接口,泛型约束还可以使用类型表达式,如 extends typeof someObject。这样可以根据现有的类型信息来约束泛型类型。 总之,泛型约束是 TypeScript 中一个强大的特性,它可以帮助开发者编写出更加灵活、健壮和可维护的代码。合理使用泛型约束可以提高代码的质量和可靠性。