interface ILength {
length: number
}
function id<Type extends ILength>(value: Type): Type {
value.length
return value
}
console.log(id(['a', 'c']))
console.log(id('abc'))
console.log(id({ length: 10, name: 'jack' }))
解释:
1.创建描述约束的接口 ILength,该接口要求提供 length 属性。
2.通过 extends 关键字使用该接口,为泛型(类型变量)添加约束。
3.该约束表示:传入的类型必须具有 length 属性。
注意:传入的实参(比如,数组)只要有 length 属性即可(除了length属性还可以有其他类型)