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

最佳答案

你不能声明一个常量,你可以声明一个 readonly 字段,它比你对常量的期望要弱,但可能已经足够了:

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

console.log(MyClass.staticReadOnly);
console.log((new MyClass).instanceReadonly);

我说它更弱,因为在运行时可以更改值,甚至在类型系统中我们也可以在没有类型断言的情况下违反 readonly:
let mutable: { instanceReadonly: number } = new MyClass() // valid assignment
mutable.instanceReadonly = 11; // we just changed a readonly field

如果可以,我会坚持在类外使用常规的 const 声明。

关于typescript - 在 Typescript 类中声明一个常量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51476396/

10-12 00:13
查看更多