鸭子类型

  • TS是面向接口编程,而不是面向对象编程。
  • 在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由”当前方法和属性的集合”决定。
  • 在鸭子类型中,关注点在于对象的行为,能作什么;而不是关注对象所属的类型。

    “当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”

interface和type类型别名的区别

:::info 主要区别

  • 定义联合类型时,只能使用type,例如:type MyNumber = string | number
  • 定义交叉类型时,也只能使用type,例如:type MyNumber = string & number
  • interface也无法实现Utility Type,可以使用Utility Type制造很多类型,例如Exclude Extract Omit等等。 :::