typescript - 将数组传播到 typescript 中的参数

标签 typescript

我有一个数组数组,我想将每个数组用作函数的参数,例如,在 javascript 中它可能如下所示:

const args = [
    [1, 'a'],
    [2, 'b'],
];

const concatter = (first, second) => `${first}-${second}`;

const test = args.map(a => concatter(...a));
console.dir(test);

我在 typescript 中尝试过类似的东西,但我在让它工作时遇到了问题。 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 的调用显示错误:

需要 2 个参数,但得到 0 个或更多。

似乎我在这里犯了一个相当基本的错误,但我还没有找到任何关于那可能是什么的信息。

最佳答案

您只需为您的 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);

关于typescript - 将数组传播到 typescript 中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55742551/

相关文章:

typescript - React Native TypeScript TextInput 不工作

javascript - 如何在 TypeScript 中按泛型类型过滤类型列表?

javascript - import().Client 类型的参数不可分配给 import().Client 类型的参数

javascript - 如何禁用特定行的 ts 规则?

Angular rxjs 如何像一个订阅一样调用多个相同的 http 请求?

angular - 混合应用程序 - Ionic 与 NativeScript

node.js - 防止发送ts文件

javascript - 如何在 Angular 5 中安全地存储本地存储

javascript - Angular 2路由器错误

javascript - 如何根据 "rank"对象属性重新分配列表(在 typescript 中)?