TypeScript文档地址: Interface
主要功能和描述
:::info
主要功能:对对象的形状(shape) 进行描述
:::
:::warning
描述:鸭子类型 Duck Typing
意思是:如果某个东西长得像鸭子,像鸭子一样游泳,一样嘎嘎叫,那么它就可以被看成是一只鸭子。
它是动态编程语言的一种对对象推断的策略。它更关注对象能如何被使用,而不是对象的类型本身
:::
注意:因为interface是不存在于js中的概念,所以ts在编译以后,interface是不会被转换过去的
声明方法
// 定义一个接口personinterface Person{name: string;age: number;}// 接着定义一个变量chan,它的类型是Person。// 这样,我们就约束了chan的形状必须和Person接口一致// 需要注意的是,多一个或者少一个参数都不行let chan: Person = {name: 'chenYongRen',age: 20}// 如果我们不希望完全匹配一个形状,那么可以用可选属性?interface Person {name: string;age?: number;}// 这样age就可以可加可不加。let chan: Person = {name: 'chenYongRen'}// 如果我们希望一个属性只能在初始化时赋值// 不能再次赋值,可以使用属性readonly定义只读属性interface Person {readonly id: number;name: string;age?: number;}let chan: Person = {id: 1,name: 'chenYongRen',age: 20}chan.id = 2; // 报错// 无法分配到 "id" ,因为它是只读属性
