Typescript的接口
接口的作用:
接口是一种规范的定义,它定义了行为和动作的规范,在程序设计里面,接口起到一种限制和规范的作用。接口不关心内部的状态数据以及实现的细节,只规定类里必须提供某些方法,提供这些方法的类可以满足实际需求,Typescript的接口类似与java,还增加了更灵活的接口类型,包括属性、函数、可索引和类等。
(1)属性接口:
//属性接口
interface Fullname{
firstName: string; //注意以 ; 结束
secondName: string;
}
function printName(name: Fullname) {
//必须传入对象 firstName secondName
console.log(name.firstName + ' ' + name.secondName);
}
printName ({
firstName: 'z',
secondName: 'm'
age: 20, //这个方式传参只能包含firstName secondName
})
var obj = {
age: 20,
firstName: 'z',
secondName: 'm' //这种方式就可以传入其他参数
}
printName(obj)
(2)可索引接口:
对数组的约束:
//属性接口
interface UserArr{
[index: number]: string;
}
var arr:UserArr = ['aaa', 'bbb'];
console.log(arr[0]); //输出 aaa
(3)类类型接口:
对类的约束
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 + '吃粮食');
}
}
var d = new Dog('小黑');
d.eat() //输出 小黑吃粮食
扩展:接口可以继承接口
interface Animal{
eat(): void;
}
interface Person extends Animal{
work(): void;
}
class Web implements Person{
public name: string;
constructor(name: string){
this.name = name;
}
eat(){
console.log(this.name + '喜欢吃馒头');
}
work(){
console.log(this.name + '写代码');
}
}
var p = new Web('zmj');
p.work() //输出 zmj写代码