Spre array til argumenter i TypeScript
Jeg har et array av arrays, og jeg vil bruke hver som argumenter for en funksjon, for eksempel, i JavaScript kan det se slik ut:
const args = [
[1, 'a'],
[2, 'b'],
];
const concatter = (first, second) => `${first}-${second}`;
const test = args.map(a => concatter(...a));
console.dir(test);Jeg har prøvd noe lignende i TypeScript, men jeg har problemer med å få det til å fungere. Her er en lenke til lekeplassen. Koden ser slik ut:
const args = [
[1, 'a'],
[2, 'b'],
];
const concatter = (first: number, second: string) => `${first}-${second}`;
const singleTest = concatter(...args[0]);
const test = args.map(a => concatter(...a));
Men med dette viser anropene til concatter feilen:
Expected 2 arguments, but got 0 or more.Det ser ut som om jeg gjør en ganske grunnleggende feil her, men jeg har ennå ikke vært i stand til å finne noen informasjon om hva det kan være.
Svar #1
Du trenger bare å legge til en type for argumentene dine, slik at TypeScript vet at args-variabelen er et array med tupler som inneholder et tall og en streng.
Da vil det fungere:
const args: [number, string][] = [
[1, 'a'],
[2, 'b'],
];
const concatter = (first: number, second: string) => `${first}-${second}`;
const singleTest = concatter(...args[0]);
const test = args.map(a => concatter(...a));
console.log(test);
