Propriedade de classe JSON stringify ES6 com getter / setter
Eu tenho uma classe JavaScript ES6 que possui uma propriedade definida comset
e acessado comget
funções. Também é um parâmetro construtor para que a classe possa ser instanciada com a referida propriedade.
class MyClass {
constructor(property) {
this.property = property
}
set property(prop) {
// Some validation etc.
this._property = prop
}
get property() {
return this._property
}
}
eu uso_property
para escapar da pegadinha JS de usar get / set que resulta em um loop infinito se eu definir diretamente paraproperty
.
Agora, preciso especificar uma instância do MyClass para enviá-la com uma solicitação HTTP. O JSON com string é um objeto como:
{
//...
_property:
}
Eu preciso da sequência JSON resultante para preservarproperty
portanto, o serviço para o qual estou enviando pode analisá-lo corretamente. Também precisoproperty
permanecer no construtor porque preciso construir instâncias do MyClass a partir do JSON enviadas pelo serviço (que está enviando objetos comproperty
não_property
)
Como contornar isso? Devo apenas interceptar a instância MyClass antes de enviá-la para a solicitação HTTP e alterar_property
paraproperty
usando regex? Isso parece feio, mas poderei manter meu código atual.
Como alternativa, posso interceptar o JSON que está sendo enviado ao cliente a partir do serviço e instanciar MyClass com um nome de propriedade totalmente diferente. No entanto, isso significa uma representação diferente da classe em ambos os lados do serviço.