una que paso parametros herencia funciones crear clases clase interface arguments typescript default-value

interface - que - Typescript-Parámetros por defecto en clase con interfaz



paso de parametros typescript (1)

Tengo un escenario donde tengo una interfaz que tiene un método como ese:

interface SomeInterface { SomeMethod(arg1: string, arg2: string, arg3: boolean); }

Y una clase como tal:

class SomeImplementation implements SomeInterface { public SomeMethod(arg1: string, arg2: string, arg3: boolean = true){...} }

Ahora el problema es que parece que no puedo decirle a la interfaz que la tercera opción debería ser opcional o tener un valor predeterminado, como si tratara de decirle a la interfaz que hay un valor predeterminado. Recibo el error:

TS2174: Default arguments are not allowed in an overload parameter.

Si omito el valor predeterminado de la interfaz y lo invoca de esta manera:

var myObject = new SomeImplementation(); myObject.SomeMethod("foo", "bar");

Se queja de que los parámetros no coinciden con ninguna anulación. Entonces, ¿hay alguna manera de poder tener valores predeterminados para los parámetros y heredar de una interfaz, no me importa si la interfaz debe tener el valor por defecto también, ya que siempre va a ser un argumento opcional.


Puede definir el parámetro para ser opcional con ? :

interface SomeInterface { SomeMethod(arg1: string, arg2: string, arg3?: boolean); }