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

Javascript 如何使用三点符号将数组传递给另一个函数?,javascript,arrays,typescript,Javascript,Arrays,Typescript,我有两个函数,它们使用…array三点符号将数组作为参数。所以我可以这样使用函数:Foo('a','b','c') 我面临的问题是,当我将第一个函数的参数传递给第二个函数时,我会得到一个类型错误 “string[]”类型的参数不能分配给“string”类型的参数 这个问题可以通过删除参数前的点来解决,但是我必须像这样传递参数['a','b','c']。这不是我的选择。因此,我想知道是否有一种方法可以将整个数组传递给另一个带有…符号的函数 function Foo(...array: string

我有两个函数,它们使用
…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
,而不删除
符号。

简单:只需将它们展开即可

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

Foo需要0个或更多类型为
string
的参数。如果没有spread运算符,您将向它传递一个字符串数组。

这是一个简单的解决方法:),我准备在
Test
中完全重新实现
Foo
,以使代码能够编译。但不再需要了。如果已经传递了spread array,则不需要在方法中将spread array定义为参数。试试这个
函数Foo(array:any){}函数测试(array:string[]){Foo(…array)//这就是它开始抱怨的地方}
我尽量避免使用
any
,因为我正在构建一个具有全面类型安全性的库。然后你可以使用
string[]
而不是
any
:)但是在这种情况下,您可能需要
any
类型。这就是为什么他们引入了
any