Voici quelques choses que vous pourriez faire:
Exportez un const
depuis le module . Selon votre cas d'utilisation, vous pouvez simplement:
export const constant1 = 33;
Et importez cela depuis le module si nécessaire. Ou, en vous appuyant sur votre idée de méthode statique, vous pouvez déclarer un static
accesseur get :
const constant1 = 33,
constant2 = 2;
class Example {
static get constant1() {
return constant1;
}
static get constant2() {
return constant2;
}
}
De cette façon, vous n'aurez pas besoin de parenthèses:
const one = Example.constant1;
Exemple Babel REPL
Ensuite, comme vous le dites, comme a class
n'est qu'un sucre syntaxique pour une fonction, vous pouvez simplement ajouter une propriété non inscriptible comme ceci:
class Example {
}
Object.defineProperty(Example, 'constant1', {
value: 33,
writable : false,
enumerable : true,
configurable : false
});
Example.constant1; // 33
Example.constant1 = 15; // TypeError
Ce serait bien si nous pouvions faire quelque chose comme:
class Example {
static const constant1 = 33;
}
Mais malheureusement, cette syntaxe de propriété de classe est uniquement dans une proposition ES7, et même alors, elle ne permettra pas d'ajouter const
à la propriété.