// 接口:接口是一種定義行為和規范,在程序設計中接口起到限制和規范的作用。接口定義某一
// 一批類所需要遵循的規范,接口不關系這些類的內部實現,之規定這些類必須提供某些方法
/* 1.對批量方法進行約束 */
interface Fullname {
firstName: string;
secondName: string;
}
function printName(name:Fullname) {
console.log(name.firstName);
console.log(name.secondName)
}
printName({firstName:'df',secondName:'dff'})
/* 2.函數類型接口,對方法傳入以及返回值進行約束 */
interface encrypt {
(key:string,value:string):string;
}
var stringA:encrypt = function(key:string,value:string):string {
return key+value;
}
console.log(stringA('fasdf','dd'));
/* 3.可索引接口 */
interface UserArr {
[index:number]:string //對數組的約束
}
var arr:UserArr = ['dd','dd']
interface UseObj {
[index:string]:string // 對對象的約束
}
var obj:UseObj = {name:'fasf'}
/* 4.類類型接口 和抽象類有點相似 */
interface Animal {
name: string;
eat(str:string):void;
}
class Dog implements Animal {
name: string;
constructor(name:string) {
this.name = name
}
eat() {
console.log(this.name + 'eating');
}
}
var dog = new Dog('小狗');
dog.eat();
/* 5.接口的擴展 */
interface Animal1 {
eat():void;
}
interface People extends Animal1 { // 接口繼承接口
work():void;
}
class web implements People {
constructor() {
}
eat() {
return 'ddd'
}
work() {
return 'fsaf'
}
}
