我们说抽象类生下来就是用来当别人的父类
的,抽象类中我们可以定义抽象方法
,抽象方法
就是没有方法体的方法,需要子类必须要对它进行一个实现。
跟我抽象类比较类似的,叫做
接口
当我们想要描述一个对象的类型
type myType = {
name:string,
age:number,
//[propname: string]:any//追加任意属性
}
const obj:myType = {
name: 'sss',
age: 11
}
type myType
的作用就是对我们对象这个类型做一个限制
我们可以以上的写法,我们也可以以一个接口
的形式去定义
接口就是用来定义**一个类的结构**
,用来定义**一个类中应该包含哪些属性和方法**
。同时接口可以当成类型声明去使用
定义接口
定义接口和定义类很像:
interface myInterface{}
接口里面直接来一个name
和age
:
interface myInterface{
name:string;
age:number;
}
和最上面的type myType
很像,而且可以:
const obj:myInterface = {}
都写其了(多写少些都会报错)就不会报错了
type myType定义俩个一样名字的类型会报错,而接口不会:
interface myInterface(){
name:string;
age:number;
}
interface myInterface(){
gender:string;
}
这种语法,在ts里面是合理的。
以俩个或多个合成一个为准
声明对象类型的方法
我们去声明一个对象的一个类型的时候,我们可以用别名的方式去声明一个类型;也可以用接口
。俩者在这块区别不大
- 起别名
- 用接口
区别在于,我们接口可以在我们定义类的时候去**限制类的结构**
接口中的所有的属性都不能有实际的值
接口只定义对象的结构,而不考虑实际值
接口羽抽象类的不同
- 抽象类当中可以有抽象方法,也可以有实质的方法
- 在接口中所有的方法都是抽象方法
定义类的时候可以实现接口
实现接口就是使类满足接口的需求
就是接口中的所有方法和属性都要在实现类
里面去实现。
注意
接口
只有在ts
里面有,编译成js
就没有了