1. 继承(extends,super)
- 在TypeScript中,允许使用面向对象模式。
- 基于类的程序设计中, 最基本的模式允许使用继承来扩展现有的类。
- 通过extends关键字创建超集的子集。
- 如果子集类包含一个构造函数需要调用super调用超集属性和方法。super(props); super.move();
2.公共,私有与受保护的修饰符
1. 默认 public
TypeScript中成员 默认 public。自己,子集和外部都可以访问
2. private(私有成员)
当成员被标记成 private 时,就不能在声明它的类的外部访问。只能自己访问。
3. protected
与private修饰符相似,不同点是:protected可以在派生类中访问。
4. readonly(受保护)
readonly关键字将属性设置为只读的。只读属性必须在声明时或构造函数里被初始化。(只能时声明的时候给值,或者在构造函数初始化的时候赋值)
3. 存取器
ts 支持通过getters/setters 来截取对 对象成员的访问。
能够有效的控制对 对象成员的访问
let passcode = "secret passcode";class Employee {private _fullName: string;get fullName(): string {return this._fullName;}set fullName(newName: string) { // newName = "Bob Smith"if (passcode && passcode == "secret passcode") {this._fullName = newName;}else {console.log("Error: Unauthorized update of employee!");}}}let employee = new Employee();employee.fullName = "Bob Smith";if (employee.fullName) {alert(employee.fullName);}// 只带有get不带有set的存取器,会自动被推断为 readonly。// 这在从代码生成 .d.ts文件时是有帮助的,因为利用这个属性的用户会看到不允许够改变它的值。
4. 静态属性(static)
访问需要在属性前加上类名,与this类似。
5. 抽象类(abstract)
- 抽象类做为其他派生类的基类使用,一般不会被实例化。
- 不同于接口,抽象类可以包含成员的实现细节。
- abstract 关键字用于定义抽象类和抽象类内部定义抽象方法。
- 抽象类中的方法不包含具体实现,但是必须在派生类中实现。
- 抽象方法的语法与接口方法相似,都是定义方法签名 但是不包含方法体。
- 抽象方法必须包含关键字abstract并且可以包含访问修饰符。
-
6. 构造函数
类的实例的类型
let`` greeter: Greeter; greeter = ``new`` Greeter(``"world"``);
let greeter: typeof Greeter = Greeter;
7. 用类定义接口
class Point {x: number;y: number;}interface Point3d extends Point {z: number;}let point3d: Point3d = {x: 1, y: 2, z: 3};
