【发布时间】:2021-01-21 20:55:30
【问题描述】:
我在 Typescript 中有一个函数,其重载如下:
function test(atts?: {[key: string]: string}, ...children: string[]): void;
function test(atts?: {[key: string]: string}): void;
function test(...children: string[]): void; //Overload 3
function test(): void;
function test(arg1?: {[key: string]: string} | string[], ...arg2: string[]) {
console.log(arg1, arg2)
}
但是,我一直被告知重载 3 与其实现签名不兼容。如何解决此错误?
我查看了其他答案,但仍在努力完成这项工作。我认为这与 arg2 可能未定义有关,这使得它与第三个重载不兼容。但是rest参数不能是undefined,所以我不确定如果是这种情况如何实现这个逻辑。
【问题讨论】:
标签: typescript