TS中接口
接口:接口是一种定义行为和规范,在程序设计中接口起到限制和规范的作用。接口定义某一批类所需要遵循的规范,接口不关系这些类的内部实现,之规定这些类必须提供某些方法
1.对 对象(复杂类型)进行约束
1 interface Fullname { 2 firstName: string; 3 secondName: string; 4 flag?: boolean; 5 } 6 function printName(name:Fullname) { 7 console.log(name.firstName); 8 console.log(name.secondName) 9 } 10 printName({firstName:'df',secondName:'dff'})
2.函数类型接口,对方法传入以及返回值进行约束
1 interface encrypt { 2 (key: string, value: string): string; 3 } 4 5 var stringA: encrypt = function (key, value) { 6 return key + value; 7 }; 8 9 console.log(stringA("fasdf", "dd"));
3.可索引接口(定义数组对象)
1 interface hanleA { 2 [index:number]:hanleB 3 } 4 5 interface hanleB { 6 name: string, 7 age: number, 8 flag?: boolean 9 } 10 function handleReduce(arr: hanleA) { 11 console.log(arr) 12 } 13 14 handleReduce([{name: 'shun', age: 12}, {name: 'enne', age: 12}])
4.类类型接口 和抽象类有点相似
1 interface Animal { 2 name: string; 3 eat(str:string):void; 4 } 5 class Dog implements Animal { 6 name: string; 7 constructor(name:string) { 8 this.name = name 9 } 10 eat() { 11 console.log(this.name + 'eating'); 12 } 13 } 14 var dog = new Dog('小狗'); 15 dog.eat();
5.接口的扩展
1 interface Animal1 { 2 eat():void; 3 } 4 interface People extends Animal1 { // 接口继承接口 5 work():void; 6 } 7 class web implements People { 8 constructor() { 9 10 } 11 eat() { 12 return 'ddd' 13 } 14 work() { 15 return 'fsaf' 16 } 17 }