接口接口:行为和动作规范,批处理方法属性接口传入对象约束//常规属性约束函数printLabel(label:string):void{}printLabel('labelstring')functionprintLabel2(labelInfo:{label:string}):void{}printLabel2({label:'labelstring'})//使用接口interfaceFullName{firstName:string;secondName:string;}functiongetName(name:FullName):void{console.log(name.firstName)//zconsole.log(name.secondName)//y}getName({firstName:'z',secondName:'y'})可选属性接口FullName2{firstName:string;第二名?:字符串;//可选属性}functiongetName2(name:FullName2):void{console.log(name.firstName)//z}getName2({firstName:'z'})encapsulationajaxinterfaceConfig{type:string;网址:字符串;数据?:字符串;dataType:string;}functionajax(config:Config){让xhr=newXMLHttpRequest()xhr.open(config.type,config.url,true)xhr.send(config.data)xhr.onreadystatechange=function(){如果(xhr.readyState==4&&xhr.status==200){console.log('success')}}}ajax({type:'get',url:'http//:www.baidu.com/',dataType:'json'})函数类型接口函数类型接口对方法传入参数和返回值都是约束batchconstraintsinterfaceEncrypt{(key:string,value:string):string}letmd5:Encrypt=function(key:string,value:string):string{returnkey+'is'+value}console.log(md5('name','zy'))//nameiszy可索引接口(不常用)//数组上的可索引接口约束interfaceUserArr{[index:number]:string}vararr:UserArr=['zy','is']//可索引接口对对象的约束interfaceUserArr2{[index:string]:string//索引和值类型都是字符串}vararr2:UserArr2={age:'23'}类类型接口接口Animal2{名称:字符串;run(str:string):void;}classDogimplementsAnimal2{name:string;constructor(name:string){this.name=name}run(str:string):void{console.log(`${this.name}is${str}`)//小黑运行}}letdog=newDog('小黑')dog.run('run')
