gpt4 book ai didi

javascript - typescript 和 ...args

转载 作者:行者123 更新时间:2023-12-01 15:52:43 27 4
gpt4 key购买 nike

TypeScript 不显示“预期 1 个参数,但得到 0 个”。错误,应该在什么时候发生。

type PolyElement = [number, number];

export interface Node {
element: PolyElement | null;
next: Node | null;
}
export class Node {
constructor(element?: PolyElement) {
this.element = element ?? null;
this.next = null;
}
add(...args: PolyElement[]) {
for (let i = 0; i < args.length; ++i) {
//some code
}
}
}

然后我像这样调用方法:

poly1.add([1,2,3]);

并且它输出: “[number, number, number]”类型的参数不能分配给“PolyElement”类型的参数。属性“长度”的类型不兼容。类型 '3' 不可分配给类型 '2'.ts(2345)

还有

poly1.add([]);

输出:“[]”类型的参数不可分配给“PolyElement”类型的参数。类型“[]”缺少类型“[number, number]”的以下属性:0, 1ts(2345)

等等

问题是为什么:

poly1.add();

不输出类似的内容:预期至少有 1 个参数,但得到了 0。 ?

最佳答案

这个语法

add(...args: PolyElement[]) {

意思是“给我尽可能多的参数(包括零)”。

您可以改为这样来强制执行至少一个参数:

add(...args: [PolyElement, ...PolyElement[]]) {

关于javascript - typescript 和 ...args,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62961968/

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