如何使用三点符号将数组传递给另一个函数?

时间:2019-06-07 10:54:32

标签: javascript arrays typescript

我有两个函数,它们使用...array三点符号来将数组作为参数。这样我就可以通过以下方式使用该功能:Foo('a', 'b', 'c')

我面临的问题是,当我将第一个函数的参数传递给第二个函数时,出现类型错误。

  

'string []'类型的参数不能分配给'string'类型的参数

可以通过删除参数前面的点来解决问题,但是然后我必须像这样['a', 'b', 'c']传递参数。这不是我的选择。因此,我想知道是否有一种方法可以使用...表示法将整个数组传递给另一个函数。

function Foo(...array: string[]) {}

function Test(...array: string[]) {
    Foo(array) // This is where it starts complaining
}

所以我想要的是将Foo的参数传递给函数Test,而不删除...表示法。

1 个答案:

答案 0 :(得分:5)

简单:只需传播它们即可。

function Test(...array: string[]) {
    Foo(...array);
}

Foo期望0个或多个string类型的参数。如果没有传播运算符,则将传递给它一个字符串数组。