上一章TypeScript教程请查看:TypeScript日期对象
根据TypeScript, Duck-Typing是一种方法/规则,用于检查更复杂的变量类型的类型兼容性。
TypeScript使用duck-typing方法来比较一个对象和其他对象,方法是检查两个对象是否具有相同的类型匹配名称。这意味着我们不能改变一个变量的签名。例如,如果我们分配一个有两个属性的对象,比如名称、地址,下一次我们分配一个包含更多属性或更少属性的对象,或者两个属性都不是(名称、地址),那么TypeScript编译器将生成编译时错误。这个概念被称为Duck typing。
duck-typing特性在TypeScript代码中提供了类型安全性。
通过duck-typing规则TypeScript编译器检查对象是否与其他对象相同。
根据duck-typing方法,两个对象必须具有相同的属性/变量类型。
class Dog {
sound = "barking";
}
class Lion {
sound = "roaring";
}
class Goat {
sound = "bleat";
swim(){
console.log("Cannot Swim!");
}
}
let lion: Lion = new Dog();
// 替代者
let dog: Dog = new Lion();
// 替代者
let lionTwo: Lion = new Goat();
//let goat: Goat = new Lion();
// IDE &
compiler error
console.log("Lion Sound: "+lion.sound);
console.log("Dog sound: "+dog.sound);
console.log("Lion sound: "+lionTwo.sound);
文章图片
【TypeScript鸭子类型(duck-typing) – TypeScript开发教程】在上面的例子中,我们可以看到它不允许用Lion替换Goat,因为Goat类有一个额外的方法(所以Lion不能输入duck)。在duck-typing中,dog和lion是可以替代的,因为lion不能做dog不能做的事,反之亦然。
推荐阅读
- TypeScript环境声明 – TypeScript开发教程
- TypeScript日期对象 – TypeScript开发教程
- TypeScript装饰器用法详解 – TypeScript开发教程
- TypeScript使用泛型编程 – TypeScript开发教程
- TypeScript名称空间和模块的区别 – TypeScript开发教程
- TypeScript模块(内部模块和外部模块 – TypeScript开发教程)
- TypeScript使用名称空间 – TypeScript开发教程
- TypeScript类的继承介绍 – TypeScript开发教程
- TypeScript类的用法详解 – TypeScript开发教程