修饰符

public

  • 实例是可以访问内部定义的属性和方法的 ``typescript class Point { public x: number public y: number constructor(x: number, y: number) { this.x = x this.y = y } public getPosition() { return(${this.x}, ${this.y})` } }

const point = new Point(1, 2) console.log(point) ```

private

  • 实例和 类 本身都无法访问
  • 只能在类内部使用

image.png

protected

  • 和 private 有区别,在父类中 声明 protect 属性和方法,在子类中是可以访问 父类定义 protect 的方法

但是不能访问 protect 定义的属性

  • 当在 constructor 前声明时,则表示该类 只能被 继承 使用, 不能被实例化

image.png
image.png

readonly

  • 表示声明的属性只读,不能修改

image.png

参数属性

  • 在constructor 中 的参数前 标明 是公共的(public)还是 私有的 (private)
  • 如果未标明,并且 constructor 函数中 没有进行 任何处理动作,则该类的实例上,并没有该属性,如果 标明了,则该类的实例上 会携带标明的属性

image.png

static

  • 只能被类本身访问,实例则无法访问

image.png

可选属性

  • 在定义属性后 加 ? 号即可

image.png

存取器

  • 在类内部方法 前加 get 和 set
  • 存值器函数(set)是不能标明函数返回值类型的

image.png

抽象类(abstract)

  • 用 abstract 修饰类
  • 抽象类只能被继承,不能被实例化
  • 抽象类中如果定义了抽象方法(属性),则在它的子类中,要实现该抽象方法(属性),

image.png

类-类型

  • 创建的类不仅可以创建实例,也是创建实例的类型

image.png

implements(类实现接口)

  • 通过类实现继承定义的接口
  • 接口是检测 通过它 定义 的类的实例

image.png

接口继承类

  • 接口继承类时,只继承这个类的成员,以及成员类型,不包括实现
  • 接口也可以继承类中 private 和 protect 修饰的成员,当出现该情况时,这个接口只能被这个类或者它的子类实现

image.png

在泛型中使用类的类型

image.png