在typescript模块声明中重新导出符号
我有一个私有JavaScript模块,我希望为它编写类型声明。结构如下所示:在typescript模块声明中重新导出符号,typescript,Typescript,我有一个私有JavaScript模块,我希望为它编写类型声明。结构如下所示: . ├── index.d.ts ├── index.js ├── lib │ ├── submodule.d.ts │ └── submodule.js └── package.json 在lib/submodule.d.ts中: declare module 'mymodule/lib/submodule' { class Submodule { // details omitt
.
├── index.d.ts
├── index.js
├── lib
│ ├── submodule.d.ts
│ └── submodule.js
└── package.json
在lib/submodule.d.ts
中:
declare module 'mymodule/lib/submodule' {
class Submodule {
// details omitted
}
export = Submodule;
}
在index.d.ts
中,我需要从lib/Submodule
重新导出子模块
类。此外,我需要记录在顶层声明的快捷方式构造函数。以下是我的尝试:
declare module 'mylib' {
// export a `createSubmodule` function that is just a shortcut for new Submodule()
import * as Submodule from 'mymodule/lib/submodule';
function createSubmodule(): Submodule;
// Also re-export Submodule
export * as Submodule from 'mymodule/lib/submodule';
}
似乎在index.d.ts
中找不到子模块.d.ts
的声明。为导入和导出收到的消息是:找不到模块“mymodule/lib/submodule”的声明文件。
重新导出这样的符号的正确方法是什么?我发现我需要做两件事:
d.ts
文件添加内联引用/// <reference path="./lib/submodule.d.ts" /> // <= reference the path to the dependency
declare module 'mylib' {
import Submodule = require('mymodule/lib/submodule'); // <= import = require()
function createSubmodule(): Submodule;
export * as Submodule from 'mymodule/lib/submodule';
}
////