gpt4 book ai didi

typescript :至少需要一个参数时使用扩展运算符

转载 作者:行者123 更新时间:2023-12-04 11:21:25 29 4
gpt4 key购买 nike

我正在学习如何在 typescript 中使用 rest 参数/扩展运算符。现在,我需要编写一个将数组作为参数的函数,并且我想使用 rest 运算符。这是功能:

insert(elem: number, ...elems: number[])
elem参数在那里是因为我需要数组至少有一个元素。

所以,给定一个这样的数组:

const numArray = [1, 2, 3, 4]

如何将数组传递给函数?我已经尝试了以下但它给了我一个错误:

insert(...numArray)

我理解错误,因为 numArray 可能有 0 到 N 个元素,并且该函数至少需要一个元素,但我不知道最佳解决方案。

有没有办法实现这一目标?

备注 : insert函数是我正在开发的库的一部分,因此我需要使其尽可能可用,而不取决于用户将如何使用它

最佳答案

您可以创建至少一个(或多个)项目的数组类型并将其展开:

function insert(...elem: [number, ...number[]]) { 
// ...
}
typings
你甚至可以写一个辅助类型,例如:
type AtLeastOne<T> = [T, ...T[]]

function insert(...element: AtLeastOne<number>) {
//...
}

关于 typescript :至少需要一个参数时使用扩展运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54288122/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com