接口用来定义一个类结构,定义一个类中应该包含哪些属性和方法,同时接口可以当成类型声明去使用。
咱们先看看类型怎么使用:
type myType = {
name:string,
age:number
}
const obj:myType = {
name:'jiangjiang',
age:18
}
而接口(合并声明):
interface myInterface{
name:string,
age:number,
}
interface myInterface{
gender:string
}
const inter:myInterface = {
name:'jiangjiang',
age:18,
gender:'male'
}
-
接口可以定义类的时候去限制类的结构
-
接口中的所有属性都不能有实际的值
-
接口只定义对象的结构,而不考虑实际值
interface Myinter{ name:string, sayHello():void }
-
定义类时,可以使用类去实现一个接口,实现接口就是使类满足接口的要求
class myClass implements Myinter{ name:string constructor(name:string) { this.name = name; } sayHello(){ console.log('肚子饿了') } }
-
接口可以去限制一个对象的接口,对象只有包含接口中定义的所有属性和方法时才能匹配接口。
interface Person{ name: string; sayHello():void; } function fn(per: Person){ per.sayHello(); } fn({name:'jiangjiang', sayHello() {console.log(Hello, 我是 ${this.name})}});
总结:
抽象和接口的区别:
抽象类中可以有抽象类方法和普通方法,但接口中只有抽象方法
抽象类使用继承extends,接口中使用implement
接口和类型声明区别:
type不允许重名声明,而接口允许重名声明并最后整合到一个大的接口中(合并声明)
下一篇俺来写写泛型!