Supongamos que tenemos la siguiente clase:
class A { private maxValue = 900; public minValue = 800; someMethod() {} }Y quiero crear un objeto simple con la definición de tipo de clase:
const objA: A = { minValue: 200, maxValue: 2313, someMethod() {} };Y estoy recibiendo este error:
La propiedad 'maxValue' es privada en el tipo 'A' pero no en el tipo '{ minValue: number; maxValor: número; algúnMetodo(): void; }
La pregunta es: ¿Tiene sentido crear objetos de esta manera? o ¿Debería quedarme siempre con el new A() ?
No creo que sea una forma ideal de definir un objeto con este tipo. Si desea definir un objeto como este, use una interfaz en lugar de una clase. En caso de crear un nuevo objeto con respecto a la clase A, el new A() es una mejor solución para crear un nuevo objeto.
No, no tiene demasiado sentido. Si objA instanceof A , devolverá false , aunque su código indica que sería una instancia de la clase A. Y como puede ver, un objeto simple no puede tener propiedades privadas, mientras que una instancia de clase sí puede. Así que mejor apégate a la new A() o usa interfaces.