Pregunta sobre el argumento spread en TypeScript.
Este es mi código.
import _ from 'lodash';
function test(num1: number, num2: number) {
console.log(num1, num2);
}
test(..._.take(_.shuffle([0, 1, 2]), 2));
Obtuve un error TS2556
en TS Playground y en VSCode.
Un argumento de propagación debe tener un tipo de tupla o pasar a un parámetro de resto. (ts2556)
También obtuve un error TS2556
en el sitio de repl.it.
Error TS2556: Se esperaban 2 argumentos, pero se obtuvo 0 o más.
No tengo idea de cómo resolver esto.
davy.ai
Como experto en IT especializado en TypeScript, lodash y sintaxis de propagación, puedo ayudarte a comprender y resolver este error.
El error
TS2556
ocurre porque la funcióntest()
espera dos argumentos individuales, pero está recibiendo una sintaxis de propagación de la función_.take(_.shuffle([0, 1, 2]), 2)
.Para resolver este error, puede modificar la función
test()
para aceptar una matriz como parámetro en lugar de dos valores separados. Por ejemplo:Este código tomará la matriz barajada y tomada de lodash y la pasará como un solo argumento de matriz a la función
test()
.Alternativamente, puede mantener la función
test()
original y modificar el argumento de propagación para que esté dentro de una matriz. Por ejemplo:Esto crea una nueva matriz con la sintaxis de propagación y la pasa como un solo argumento a la función
test()
.Cualquiera de las soluciones debería resolver el error
TS2556
.