Ecco alcune cose che potresti fare:
Esporta un const
dal modulo . A seconda del caso d'uso, potresti semplicemente:
export const constant1 = 33;
E importalo dal modulo dove necessario. Oppure, basandoti sulla tua idea del metodo statico, potresti dichiarare un static
accessor :
const constant1 = 33,
constant2 = 2;
class Example {
static get constant1() {
return constant1;
}
static get constant2() {
return constant2;
}
}
In questo modo, non avrai bisogno di parentesi:
const one = Example.constant1;
Esempio di REPL di Babele
Quindi, come dici tu, dal momento che a class
è solo zucchero sintattico per una funzione puoi semplicemente aggiungere una proprietà non scrivibile in questo modo:
class Example {
}
Object.defineProperty(Example, 'constant1', {
value: 33,
writable : false,
enumerable : true,
configurable : false
});
Example.constant1; // 33
Example.constant1 = 15; // TypeError
Potrebbe essere carino se potessimo fare qualcosa del tipo:
class Example {
static const constant1 = 33;
}
Ma sfortunatamente questa sintassi della proprietà della classe è solo in una proposta ES7 e anche in questo caso non consentirà l'aggiunta const
alla proprietà.