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