我不确定标题是否正确,因此,如果您对下面描述的问题有更好的标题,请编辑一个。
问题。
例如,有两个带有d.ts
类型文件的js模块。
模块1:
export interface AInterface {}
export interface BInterface {}
export function a(a: string): AInterface;
export function b(b: string): BInterface;
模块2:
declare function c(c: string): string;
export = c
因此,我需要创建结合了第一模块和第二模块的模块3。在js中,它看起来像:
module.exports = (options) => {
// do something with options
return {
module1: require('./module1'),
module2: require('./module2'),
}
}
我需要为模块3编写正确的d.ts
文件;
我试图做类似的事情:
import * as module1 from './module1';
import module2 = require ('./module2');
declare namespace module3 {
interface Module3 {
module1: module1;
module2: module2;
}
}
declare function module3(
options?: any
): module3.Module3
exports = module3;
但这是不正确的,因为打字稿无法编译并出现错误cannot use namespace <module1|module2> as a type
。
我已经搜索了此错误,但是我发现的所有解决方案都不适合我应该合并具有不同导出样式的模块的情况。
谢谢。