抽象类
抽象类中可以有抽象方法,抽象方法以abstract开头,没有方法体,子类必须得实现抽象方法;
abstract sayHello():void;
接口
Interface用来定义一个类的结构,也可以当成类型声明使用。
interface myInterface{
name: string;
age: number;
}
// 当成类型声明
const obj: myInterface = {
name: 'qq',
age: 18
}
interface myInter {
name: string;
sayHello(): void;
}
// 定义一个类的结构
class myClass implements myInter { //接口用implements,抽象类用extends;
name: string;
constructor(name: string) {
this.name = name;
}
sayHello() {
console.log('大家好~')
}
}
接口可以重复声明,type不可以
interface myInterface {
name: string;
age: number;
}
// 重复声明
interface myInterface {
gender:string
}
const obj: myInterface = {
name: 'qq',
age: 18,
gender: 'male'
}
以上是关于接口和抽象类的,在学习接口时,还涉及到了type和enum,感觉这篇博文不错
TS 中 interface,type,enum 的区别
依我个人理解,如果要起别名就用type,enum用来写一些不变的值,interface是用来去定义结构。
// 像这种l和k重复写很麻烦,不建议
let l: 1 | 2 | 3 | 4 | 5
let k: 1 | 2 | 3 | 4 | 5
k = 1
// 可以写成这种,起一个别名
type myType = 1 | 2 | 3 | 4 | 5
let l: myType
let k: myType
k = 1
仅个人理解,欢迎指正。