接口(英文:Interface)
接口通常以interface来声明,接口是抽象方法的集合,即只声明,不定义具体值。
类描述对象的属性和方法。接口则包含类要实现的方法;除非实现接口的类是抽象类,否则该类要定义接口中的所有方法;一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。接口支持多继承,一个类可以实现多个接口;
在TypeScript中,接口除了用于约束类之外,还可以用来约束 JSON对象,数组,函数等;
使用示例如下:
//接口约束类
interface Icountry{
Study(params:string):string;
Build(params:string):string;
}
class Homeland implements Icountry {//类通过implement来描述自己实现的是哪个接口中定义过的功能;
Study(params:string):string{
return ' Study function is working with ' + params+'\n';
}
Build(params:string):string{
return ' Build function is working with ' + params;
}
}
var homeland = new Homeland;
var project1 = homeland.Study('internet');
var project2 = homeland.Build('place');
console.log(project1,project2);
//接口约束函数
interface Ifucntion{
(params:{name:string}):boolean;
}
let myfunction:Ifucntion;
myfunction = function(params:{name:string}):boolean{
if(params.name!='test'){
return false;
}else{
return true;
}
}
console.log(myfunction({name:'test'}));
//约束数组
interface Iarray{
[index:number]:string;
}
let myArray:Iarray=['1','str1'];
//约束JSON
interface Ijson{
name:string,
skill:string,
readonly sex:string,//只读属性,即设置后不允许修改
health?:boolean //可选属性
}
let baby:Ijson = {
name:'sweet heart',
skill:'cry',
sex:'girl'
}