Hier sind einige Dinge, die Sie tun könnten:
Exportieren Sie a const
aus dem Modul . Abhängig von Ihrem Anwendungsfall können Sie einfach:
export const constant1 = 33;
Und importieren Sie das bei Bedarf aus dem Modul. Aufbauend auf Ihrer Idee einer statischen Methode können Sie auch einen static
Get-Accessor deklarieren :
const constant1 = 33,
constant2 = 2;
class Example {
static get constant1() {
return constant1;
}
static get constant2() {
return constant2;
}
}
Auf diese Weise benötigen Sie keine Klammern:
const one = Example.constant1;
Babel REPL Beispiel
Dann können Sie, wie Sie sagen, da a class
nur syntaktischer Zucker für eine Funktion ist, einfach eine nicht beschreibbare Eigenschaft wie folgt hinzufügen:
class Example {
}
Object.defineProperty(Example, 'constant1', {
value: 33,
writable : false,
enumerable : true,
configurable : false
});
Example.constant1; // 33
Example.constant1 = 15; // TypeError
Es könnte schön sein, wenn wir einfach so etwas machen könnten:
class Example {
static const constant1 = 33;
}
Leider ist diese Klasseneigenschaftssyntax nur in einem ES7-Vorschlag enthalten, und selbst dann kann sie nicht const
zur Eigenschaft hinzugefügt werden .