我有一个数组数组,我想将每个数组用作函数的参数,例如,在javascript中,它看起来像:
const args = [
[1, 'a'],
[2, 'b'],
];
const concatter = (first, second) => `${first}-${second}`;
const test = args.map(a => concatter(...a));
console.dir(test);
我在打字稿中尝试过类似的操作,但是在使其工作时遇到了问题。 Here's a link to the playground.代码如下:
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));
但是,对此concatter
的调用显示了错误:
Expected 2 arguments, but got 0 or more.
似乎我在这里犯了一个相当基本的错误,但是我尚未能够找到有关可能是什么的任何信息。
答案 0 :(得分:3)
您只需要为args添加类型,以便TypeScript知道args
变量是具有数字和字符串的元组数组。
然后它将起作用:
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);