我有两个函数,它们使用...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
,而不删除...
表示法。
答案 0 :(得分:5)
简单:只需传播它们即可。
function Test(...array: string[]) {
Foo(...array);
}
Foo期望0个或多个string
类型的参数。如果没有传播运算符,则将传递给它一个字符串数组。