Skip to main content

在 TS 中可以使用 public、private、protected 关键字来对构造函数、成员变量和成员方法、静态变量和静态方法的外部可见性进行控制。 虽然默认情况下,所有的成员都是 public 的,但是我依然建议对所有的成员(除了 constructor 之外)进行显式的可见性标注。

class MyClass {
public static shared = new MyClass();
public static publicStaticProperty = 'hello world';
private static _privateStaticProperty = 'hello myself';
public static publicStaticMethod() {}
private static privateStaticMethod() {}
public publicProperty = 'hi';
private _privateProperty = '';
private #privatePropertyUsingNewSyntax = '';
private constructor() {
// I don't want outer context to create object using constructor directly.// They should use the static shared instance to access it.
}
public publicMethod() {}
private privateMethod() {}
}

根据上述的示例代码,建议在编写 class 的时候,应当按照以下顺序来进行编写,这样可以提高代码的可读性和可维护性。

  • Public static properties

  • Private static properties

  • Public static methods

  • Private static methods

  • Public properties

  • Private properties

  • Constructor

  • Public methods

  • Private methods

可以用 class 来声明 interface

再用 interface extends class

最后直接用 interface 或者 class implements interface 这里直接引用官方示例来进行说明:

class Point {
x: number;
y: number;
}
interface Point3d extends Point {
z: number;
}
let point3d: Point3d = { x: 1, y: 2, z: 3 };