接口-数组、对象及类的约束
接口不仅可以对方法进行约束
对数组约束
对对象约束(不常用)
对类约束(多用)
// 可索引接口:数组、对象的约束(不常用)
//1、对数组的约束,可以用any,数组中传递任何类型
interface MyArray {
[index:number]:string
}
let arr:MyArray=['a','b','c'];//值必须是字符串
console.log(arr[0]);
//2、对对象的约束,索引可以是string类型
interface MyObj {
[index:string]:string
}
let obj:MyObj={name:'张三'};
console.log(obj[0]); //undefined
console.log(obj["name"]); //张三
//3、类类型接口,对类的约束
interface IAnimal {
name:string;
eat(str:string):void;
}
class Dog implements IAnimal{
name:string;
constructor(name:string){
this.name=name;
}
//方法可以和接口定义方法的参数不一样
eat():string{
return "";
}
}
let dd=new Dog("ahuang");
dd.eat();