Oto kilka rzeczy, które możesz zrobić:
Wyeksportuj a const
z modułu . W zależności od przypadku użycia możesz po prostu:
export const constant1 = 33;
W razie potrzeby zaimportuj to z modułu. Lub, bazując na Twojej idei statycznej metody, możesz zadeklarować static
get accessor :
const constant1 = 33,
constant2 = 2;
class Example {
static get constant1() {
return constant1;
}
static get constant2() {
return constant2;
}
}
W ten sposób nie będziesz potrzebować nawiasów:
const one = Example.constant1;
Przykład Babel REPL
Następnie, jak mówisz, ponieważ a class
jest po prostu cukrem syntaktycznym dla funkcji, możesz po prostu dodać właściwość, której nie można zapisać:
class Example {
}
Object.defineProperty(Example, 'constant1', {
value: 33,
writable : false,
enumerable : true,
configurable : false
});
Example.constant1; // 33
Example.constant1 = 15; // TypeError
Przydałoby się coś takiego:
class Example {
static const constant1 = 33;
}
Ale niestety ta składnia właściwości klasy jest tylko w propozycji ES7 i nawet wtedy nie pozwoli na dodanie const
do właściwości.