有一个外部模块声明,其形状为:
declare module "external-module" {
namespace SomeNS {
namespace SubNS {
// some functions.
function someFunc(): void;
}
}
exports = SomeNS;
}
我可以将某些功能设为SomeNS.subNS.someFunc()
。但是现在我发现了一个方法,function methodMissingDefinition() {}
,缺少它的定义,我想在我的代码中修复它而不修改第三方声明。
是否有任何技巧可以让我这样做?
或者不可能这样做,唯一的方法是敦促作者修改声明?
答案 0 :(得分:0)
因此,是,您应该打开PR,并鼓励第三方维护人员更新输入内容;但是在此期间,我相信您可以像这样扩展第三方类型:
import * as externalModule from 'external-module';
declare module 'external-module' {
namespace SomeNS {
namespace SubNS {
// missing functions.
function methodMissingDefinition(): void;
}
}
exports = SomeNS;
}
然后像这样导入它:
import * as externalModule from 'external-module';
import 'myExternalModuleExtension';
externalModule.SubNS.methodMissingDefinition()
我从这个GitHub问题中推断出可供参考:https://github.com/microsoft/TypeScript/issues/10859