在 TypeScript 中,const关键字不能用于声明类属性。这样做会导致编译器出现“类成员不能具有 ‘const’ 关键字”的错误。
const
我发现自己需要在代码中明确指出不应更改属性。如果我在声明属性后尝试为其分配新值,我希望 IDE 或编译器出错。你们是如何做到这一点的?
我目前正在使用只读属性,但我是 Typescript(和 JavaScript)的新手,想知道是否有更好的方法:
get MY_CONSTANT():number {return 10};
我正在使用打字稿 1.8。建议?
PS:我现在使用的是 typescript 2.0.3,所以我接受了大卫的回答
TypeScript 2.0 有readonly修饰符:
readonly
class MyClass { readonly myReadOnlyProperty = 1; myMethod() { console.log(this.myReadOnlyProperty); this.myReadOnlyProperty = 5; // error, readonly } } new MyClass().myReadOnlyProperty = 5; // error, readonly
它不完全是一个常量,因为它允许在构造函数中赋值,但这很可能没什么大不了的。
替代解决方案
另一种方法是使用static关键字 with readonly:
static
class MyClass { static readonly myReadOnlyProperty = 1; constructor() { MyClass.myReadOnlyProperty = 5; // error, readonly } myMethod() { console.log(MyClass.myReadOnlyProperty); MyClass.myReadOnlyProperty = 5; // error, readonly } } MyClass.myReadOnlyProperty = 5; // error, readonly
这样做的好处是不能在构造函数中赋值,并且只存在于一个地方。