TypeScript接口与类的使用
一.TypeScript接口 Interfaces
可以约定一个对象的结构 一个对象去实现一个接口 就必须拥有这个接口中所有的成员用interface定义接口,
并且定义接口中成员的类型 编译之后会发现typeScript中的接口只是对成员做类型约束的
定义string类型的key值和value值接口
二.类的概念
描述一类具体事物的抽象特征,以生活中为例,比如汽车是一个类,比亚迪,宝马,奔驰属于子类,除了有父级的共同特点4个轮胎,
一个方向盘之外,还有自己独有的特性。ES6之前 JavaScript没有类的概念 ,ES6之后有了Class类的概念,TypeScript增强了Class的
相关语法。举例说明:
类的访问修饰符
public 公有属性 没有限制
private 私有属性 只能在类的内部去访问 如果在类的外部访问的话 会报错
protected 受保护属性 与private区别是可继承父类的方法和属性
类与接口
比如说人和动物是两个类,他们有共同的特点就是吃和跑,则吃和跑就是人和动物的接口,但是动物的吃和跑与人的吃和跑毕竟不一样,
所以是两个类,而不是一个类的继承。像C#,java这些语言更倾向于一个能力设定为一个接口,因为吃和跑不是同时进行的,这样设
计的话能使代码更细化 如下图所示:
TypeScript 抽象类
抽象类一定程度上跟接口的定义差不多,约束子类中必须有某一个成员,不同于接口的是抽象类可以包含一些具体的实现,抽象类一
般指的大的方向类,打个比方:动物就是抽象类,定义抽象类之后 只能够继承 不能再使用new的方式去创建实例对象了,定义抽象
类的方式 abstract 如下图所示:
TypeScript 泛型
定义函数或者接口或者类的时候没有指定具体的类型 使用的时候再去指定具体类型的这样一种特征这样做的目的是极大可能的复用
我们的代码 举例如下图所示:
上图所示泛型为number类型,如果为string类型的话 这段代码就不能用了,所以我们可以用一个参数T代表类型 如下图所示: