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