在Typescript类中声明一个常量

Bra*_*UAR 4 static const class typescript

在TypeScript中声明常量的最佳方法是什么class

Tit*_*mir 5

您不能声明一个常量,可以声明一个readonly字段,该字段要弱于您希望从常量中获得的值,但可能足够好:

class MyClass {
    static readonly staticReadOnly = 10;
    readonly instanceReadonly = 10;
}

console.log(MyClass.staticReadOnly);
console.log((new MyClass).instanceReadonly);
Run Code Online (Sandbox Code Playgroud)

我说它比较弱,因为在运行时可以更改值,甚至在类型系统中,甚至在readonly没有类型声明的情况下我们都可以违反该值:

let mutable: { instanceReadonly: number } = new MyClass() // valid assignment
mutable.instanceReadonly = 11; // we just changed a readonly field
Run Code Online (Sandbox Code Playgroud)

如果可以的话,我会const在课外坚持一个常规声明。