鸭子类型
定义: 鸭子类型(Duck Typing)是一种动态类型的实现方式,它的核心思想是“如果一个对象走起路来像鸭子,游起泳来像鸭子,叫起来也像鸭子,那么就可以认为这个对象是鸭子”。
对于一个对象来说,只要它具备了某种类型特定的属性和方法,我们就可以把它当做某种类型来使用。可以提高代码的可重用性和扩展性。
class Person {
constructor(public name: string, public age: number) {
this.name = name
this.age = age
}
swiming() {}
}
class Student {
constructor(public name: string, public age: number) {
this.name = name
this.age = age
}
swiming() {}
}
// 这个函数的参数为Person类, 但是由于鸭子类型可以传入Student类
function foo(para: Person) {
//一系列操作...
}
foo(new Student("messi", 33))
export {}