TS 完全指南之类(四)
- ES6 之前使用函数实现类,ES6可以使用 class 关键字声明一个类
- 在默认的
strictPropertyInitialization模式下面我们的属性是必须在constructor初始化的,如果没有初始化,那么编译时就会报错,如希望此模式下不报错,可以使用name!: string的语法 - 类拥有自己的构造器
constructor,当我们通过new关键字创建一个实例时会被调用,类中定义的函数叫方法
基本使用
类的继承
- 使用
extends关键字来实现继承,子类中使用super来访问父类
类的成员修饰符
- 在 TS 中,类的属性和方法支持三种修饰符:
public、private、protected - public:类外可见,默认编写的属性就是 public 的
- protected:类和子类中可见
- private:仅自身类可见
- #属性:实现私有属性,并且类型擦除之后还有效
只读属性
- 如果一个值不希望外界随意修改,可以使用 readonly 变得只读
访问器 getters/setters
- 之前有一些私有属性我们不能直接访问,我们就可以使用存取器监听他的获取(getter)和设置(setter)
静态成员
- 通过 static 可以定义类级别的成员和方法,通过
类.属性或方法就可访问
抽象类
- 抽象方法,必须存在于抽象类(使用
abstract声明)中 - 抽象类不能被 new 实例化,且内部抽象方法和属性必须被子类实现
类的类型
- 类本身也可以当做一种类型
参数属性(Parameter Properties)
- 参数属性将
constructor参数转换为同名同值的实例属性,相当于帮我们做this.name = name的操作 - 我们可以在其
constructor参数前面添加可见修饰符(public private protected 或者 readonly)创建参数属性

转载自:https://juejin.cn/post/7212143399037714469