鸭子类型
- TS是面向接口编程,而不是面向对象编程。
- 在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由”当前方法和属性的集合”决定。
- 在鸭子类型中,关注点在于对象的行为,能作什么;而不是关注对象所属的类型。
“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”
interface和type类型别名的区别
:::info 主要区别
- 定义联合类型时,只能使用type,例如:
type MyNumber = string | number - 定义交叉类型时,也只能使用type,例如:
type MyNumber = string & number - interface也无法实现Utility Type,可以使用Utility Type制造很多类型,例如
ExcludeExtractOmit等等。 :::
