接口的做用就是为这些类型命名和为你的代码或第三方代码定义契约。 -----来源: 官方文档
个人理解:接口就是一个自定义的类型 typescript
一个示例🌰: 求一个数的平方编辑器
function sqr(num: number) { console.log(num*num); } sqr(3) // 9 sqr("no") // 报错:Argument of type '"no"' is not assignable to parameter of type 'number'
这时候编辑器规范这个参数类型,类型就是后面的number
spa
下方的官方代码🌰3d
interface LabelledValue { label: string; } function printLabel(labelledObj: LabelledValue) { console.log(labelledObj.label); } let myObj = { size: 10, label: "Size 10 Object" }; printLabel(myObj);
这时候就看成labelledObj的参数类型为LabelledValue。👀
LabelledValue有必定的规范,也就是其中有个参数是label,而且是string类型,那么咱们定义这个参数的时候就要符合这个接口的规范。要有这个属性,而且它的类型为string。
(多了没事,好比官方示例中多了个size)code
可是我这样写编辑器会报错,可是能够编译经过blog
printLabel({ size: 10, label: "Size 10 Object" });
因此尽管能够编译经过,我仍是会使得参数和接口的里面的参数及类型保持一致✔
暂时就写这么点接口