Sé que puedo crear una constante privada poniéndola en el cierre de un IIFE:
let testObj = (function() { const myConst = 'test value'; return { showPrivateConst() { return myConst; } } })(); console.log(testObj.showPrivateConst()); // test value Pero estoy buscando la mejor manera de hacerlo usando la sintaxis class y el indicador privado # . Hasta ahora, lo mejor que he encontrado es esto:
class Test { get #myConst() { return 'test value'; } showPrivateConst() { return this.#myConst; } } let testObj = new Test(); console.log(testObj.showPrivateConst()); // test valueEsto parece algo barroco. ¿Es esta la forma de hacerlo, configurando una propiedad privada de solo lectura para obtener una constante privada, o hay una forma más idiomática de hacerlo?
Editar: He estado recibiendo algunos comentarios acerca de que las propiedades estáticas son la forma de hacer esto. También he mirado las propiedades estáticas, y prácticamente me dan la misma pregunta. No puedo hacer que una variable estática privada sea una constante, por lo que parece que tengo que convertirla en una propiedad de solo lectura usando un método getter. Aquí está el ejemplo usando una propiedad estática:
class Test { static get #myConst() { return 'test value'; } showPrivateConst() { return Test.#myConst; } } let test = new Test(); console.log(test.showPrivateConst()); // test valueEntonces, esto da lugar a más o menos la misma pregunta. Parece un poco barroco, y me pregunto si hay una forma más idiomática de hacerlo.