Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

291
Vistas
Anule el valor del parámetro predeterminado mientras haya parámetros opcionales

Tengo una función que toma cuatro parámetros, entre los cuales se requiere el primer parámetro, el segundo y el tercero son opcionales, el cuarto tiene un valor predeterminado:

 class MyClass { static myFunc(param1: string, param2? : string, param3? : string, param4:boolean=true) { ... } }

En mi llamador, me gustaría proporcionar el valor del primer parámetro y anular el cuarto valor booleano. ¿Como hacer eso? No puedo hacer MyClass.myFunc("foo", false) . ¿Debo rediseñar la firma de la función? ¿Cuál es la convención en TypeScript para tener una función como esa?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

  1. Debe redefinir el orden y el uso de los parámetros en su función.

  2. ¿Usar param?:type

De esta forma, puede sobrecargar la llamada a la función sin enviar explícitamente argumentos undefined innecesarios.

 const func = (a:number, b:boolean = true, c?:string, d?:string) => { console.log(a, b, c, d) } func(1) func(1, false) func(1, false, "Hello") func(1, false, "Hello", "World")

En tu caso:

 class MyClass { static myFunc(param1:string, param2:boolean = true, param3?:string, param4?:string) { ... } }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí hay un par de formas de lograr la API sobre la que preguntó:

Enlace de juegos TS

 class MyClass { // the method in your question static myFunc ( param1: string, param2?: string, param3?: string, param4 = true, ): void { console.log([param1, param2, param3, param4]); } // parameters reordered static myRefactoredFunc ( param1: string, param4 = true, param2?: string, param3?: string, ): void { console.log([param1, param2, param3, param4]); } } // if you can't modify the class, you can create a function with the // parameters ordered by your preference, which calls the original method // in the function body and returns its return value const myFunc = ( param1: Parameters<typeof MyClass['myFunc']>[0], param4?: Parameters<typeof MyClass['myFunc']>[3], param2?: Parameters<typeof MyClass['myFunc']>[1], param3?: Parameters<typeof MyClass['myFunc']>[2], ): ReturnType<typeof MyClass['myFunc']> => MyClass.myFunc(param1, param2, param3, param4); // these are all equivalent MyClass.myFunc('foo', undefined, undefined, false); MyClass.myRefactoredFunc('foo', false); myFunc('foo', false);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda