Estoy tratando de pasar diferentes combinaciones de argumentos a un constructor de clase. El constructor toma 2 argumentos que son opcionales. Aquí está el código:
class MyClass { foo(a, b) { return new MyClass(a, b); } bar(a) { return new MyClass(a); } baz(b) { return new MyClass(b); } constructor(a?: TypeA, b?: TybeB) {} }Las dos primeras instancias funcionan, pero el tercer intento falla. Dice: "El argumento de TypeB no se puede asignar al parámetro de TypeA". Baz(b) funciona si reorganizo los parámetros del constructor para convertirlo en constructor(b?: TybeB, a?: TybeA), pero ahora foo(a, b) falla.
Hay otra manera de hacer esto?
tienes que llamar
return new MyClass(undefined, b);