export const constant1 = 33;
И импортируйте это из модуля там, где это необходимо. Или, основываясь на вашей статической идее метода, вы можете объявить static
get accessor:
const constant1 = 33,
constant2 = 2;
class Example {
static get constant1() {
return constant1;
}
static get constant2() {
return constant2;
}
}
Таким образом, вам не нужно скобку:
const one = Example.constant1;
Babel REPL Example
Тогда, как вы говорите, , так как 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;
}
Но, к сожалению, это class property syntax только в предложении ES7, и даже тогда он не позволит добавлять const
к собственности.
Лично я просто использую прописные ВАРНАМЫ и говорю себе, чтобы не трогать их;) – twicejr
@twicejr Я думаю, что это не одно и то же, для статических переменных можно получить доступ без первого экземпляра объекта этого класса? –