次のことを行うことができます。
モジュールconst
からをエクスポートします。ユースケースに応じて、次のことができます。
export const constant1 = 33;
そして、必要に応じてモジュールからインポートします。または、静的メソッドのアイデアに基づいて、static
getアクセサーを宣言できます。
const constant1 = 33,
constant2 = 2;
class Example {
static get constant1() {
return constant1;
}
static get constant2() {
return constant2;
}
}
そうすれば、括弧は不要になります。
const one = Example.constant1;
Babel REPLの例
次に、あなたが言うように、a class
は関数の単なる構文糖なので、次のように書き込み不可のプロパティを追加するだけです。
class Example {
}
Object.defineProperty(Example, 'constant1', {
value: 33,
writable : false,
enumerable : true,
configurable : false
});
Example.constant1; // 33
Example.constant1 = 15; // TypeError
次のようなことができればいいかもしれません。
class Example {
static const constant1 = 33;
}
しかし、残念ながら、このクラスプロパティの構文はES7の提案にのみあり、それでもconst
プロパティに追加することはできません。