接口:行为的抽象
- 实现接口,要实现接口里面的内容
- 定义接口的时候,只定义声明即可,不包含具体内容
// 1.接口定义interface Iprinter { Printing(msg:string):string;}interface Imessage { Getmsg():string;}// 实现(多个)接口class colorPrinter implements Iprinter,Imessage { // 里面方法不写会报错 Printing(msg:string):string { return "打印"+msg+"成功!" } Getmsg():string { return "第二个接口的内容!" }}let p1 = new colorPrinter()let val = p1.Printing("简历")console.log(val) // 打印简历成功!console.log(p1.Getmsg()) // 第二个接口的内容!复制代码
// 2.对函数的约束interface ImyFunction { (a:string,b:number):boolean}let fun1:ImyFunctionfun1 = function(a:string,b:number):boolean { return false}复制代码
// 3.对数组的约束interface IstuArr { [index:number]:string}let arr1:IstuArrarr1= ["aaa","bbb"]console.log(arr1) //[ 'aaa', 'bbb' ]console.log(arr1[0]) // aaa复制代码
// 4.对json的约束interface Idata { name:string, readonly age:number, // readonly只读属性 email?:string // ?表示email为可选属性}function showData(n:Idata) { // n.age = 18 不能改 因为定义age为只读属性 console.log(JSON.stringify(n)) // {"name":"zhangsan","age":19}}showData({ name:"zhangsan",age:19})复制代码