TypeScript文档地址: Interface

主要功能和描述

:::info 主要功能:对对象的形状(shape) 进行描述 ::: :::warning 描述:鸭子类型 Duck Typing
意思是:如果某个东西长得像鸭子,像鸭子一样游泳,一样嘎嘎叫,那么它就可以被看成是一只鸭子。
它是动态编程语言的一种对对象推断的策略。它更关注对象能如何被使用,而不是对象的类型本身 :::

注意:因为interface是不存在于js中的概念,所以ts在编译以后,interface是不会被转换过去的


声明方法

  1. // 定义一个接口person
  2. interface Person{
  3. name: string;
  4. age: number;
  5. }
  6. // 接着定义一个变量chan,它的类型是Person。
  7. // 这样,我们就约束了chan的形状必须和Person接口一致
  8. // 需要注意的是,多一个或者少一个参数都不行
  9. let chan: Person = {
  10. name: 'chenYongRen',
  11. age: 20
  12. }
  13. // 如果我们不希望完全匹配一个形状,那么可以用可选属性?
  14. interface Person {
  15. name: string;
  16. age?: number;
  17. }
  18. // 这样age就可以可加可不加。
  19. let chan: Person = {
  20. name: 'chenYongRen'
  21. }
  22. // 如果我们希望一个属性只能在初始化时赋值
  23. // 不能再次赋值,可以使用属性readonly定义只读属性
  24. interface Person {
  25. readonly id: number;
  26. name: string;
  27. age?: number;
  28. }
  29. let chan: Person = {
  30. id: 1,
  31. name: 'chenYongRen',
  32. age: 20
  33. }
  34. chan.id = 2; // 报错
  35. // 无法分配到 "id" ,因为它是只读属性