福州专业做网站的公司有哪些,php网页制作实例,成都旅游公司,视频怎么下载谈一下什么是泛型约束
普通的泛型是比较随便的#xff0c;类似于any。
但是在某些情况下#xff0c;我们需要对实际传入的类型具有一定的特性#xff0c;比如 该泛型要具有某个属性#xff0c;
此时 就需要用到 泛型的约束了。
而这一特点也是 泛型与any之间的不同#x…谈一下什么是泛型约束
普通的泛型是比较随便的类似于any。
但是在某些情况下我们需要对实际传入的类型具有一定的特性比如 该泛型要具有某个属性
此时 就需要用到 泛型的约束了。
而这一特点也是 泛型与any之间的不同any是理解不了这一点的。写个例子看一看
需求 要求 参数的泛型类型 必须具有 length 属性。实现 使用 extends 关键字泛型继承某个拥有length属性的类型使泛型具有 length 属性。注意此处extends 的可以是 接口也可以是 类。接口 interface 本身就是 一组抽象的约束类 class 也是一组 属性和方法的集合也可以看作是一组约束。下面以接口为例写一下代码// 范型约束 给范型规定一下类型的意思
interface ILength{length:number
}// 约束 参数value 必须是有 length 这个属性的值才可以
function getArry5T extends ILength(value:T):void{console.log(value.length)
}
//getArry5(100) // 不可以因为number没有length属性
getArry5(aabbcc) // 正常因为string类型有length属性
运行结果6