Typescript 如何从完全不同类型的包中重写@类型?
我试图覆盖摩卡中的Typescript 如何从完全不同类型的包中重写@类型?,typescript,Typescript,我试图覆盖摩卡中的Func类型 它的作者是: type Func = (this: Context, done: Done) => void; 我想把它改成一个重载函数 import * as M from "mocha"; declare global { namespace Mocha { export interface Func { (this: M.Context): void; (this: M.Context, don
Func
类型
它的作者是:
type Func = (this: Context, done: Done) => void;
我想把它改成一个重载函数
import * as M from "mocha";
declare global {
namespace Mocha {
export interface Func {
(this: M.Context): void;
(this: M.Context, done: M.Done): void;
(this: M.Context, done?: M.Done): void;
}
}
}
我得到这个错误:
Duplicate identifier 'Func'.ts(2300)
index.d.ts(2178, 10): 'Func' was also declared here.
扩展接口非常容易,但我发现不可能完全将类型更改为
类型
到接口
为什么要将其切换到接口?你不能用这三个Func签名将其设置为联合类型吗?@katamaster818在这种情况下,我需要该类型包含重载,我相信我可以用接口实现这一点,但如果你尝试替换或将联合设置为type Func
,也会出现同样的错误。