tutorial react nodejs example ejemplos descargar curso typescript

react - Función de llamada TypeScript con parámetros de descanso de otro con parámetros de descanso



typescript react (3)

No hay forma de pasar p1 y p2 a test1 desde test2. Pero podrías hacer esto:

function test2(p1: string, ...p2: string[]): void { test1.apply(this, arguments); }

Eso es hacer uso de Function.prototype.apply y el objeto de arguments .

Si no te gusta el objeto de argumentos o no quieres que todos los argumentos se pasen exactamente en el mismo orden, puedes hacer algo como esto:

function test2(p1: string, ...p2: string[]) { test1.apply(this, [p1].concat(p2)); }

En TypeScript es posible declarar una función con "Parámetros de descanso":

function test1(p1: string, ...p2: string[]) { // Do something }

Supongamos que declaré otra función que llamó test1 :

function test2(p1: string, ...p2: string[]) { test1(p1, p2); // Does not compile }

El compilador produce este mensaje:

Los parámetros suministrados no coinciden con ninguna firma del objetivo de la llamada: no se pudo aplicar el tipo ''cadena'' al argumento 2 que es de tipo ''cadena []''.

¿Cómo puede test2 llamar a test1 con los argumentos proporcionados?


Pruebe el operador de propagación . Debería permitir el mismo efecto que en la respuesta de Jeffery pero tiene una sintaxis más concisa.

function test2(p1: string, ...p2: string[]) { test1(...arguments); }


Sí, no se compila porque estás haciendo algo incorrecto. Aquí está la manera correcta :

function test1(p1: string, ...p2: string[]) { // Do something } function test2(p1: string, ...p2: string[]) { test1(p1, ...p2); }