如何在TypeScript中的目录中导入所有模块?
在打字稿handbook用于导入模块少数技术描述:如何在TypeScript中的目录中导入所有模块?
- 导入单个出口从一个模块:
import { ZipCodeValidator } from "./ZipCodeValidator";
- 导入从一个模块的单个出口和将其重命名:
import { ZipCodeValidator as ZCV } from "./ZipCodeValidator";
- 导入整个模块:
import * as validator from "./ZipCodeValidator";
我希望还有一个选项,但无处可找。是否有可能从一个给定的目录中导入所有模块?
我猜的语法应该或多或少是这样的:import * from "./Converters"
。
不,这是不可能的。大多数人做的是创建一个index.js
文件,该文件重新导出同一目录中的所有文件。
实施例:
my-module/
a.ts
b.ts
index.ts
a.ts
export default function hello() {
console.log("hello");
}
b.ts
export default function world() {
console.log("world");
}
index.ts
export { default as A } from "./a";
export { default as B } from "./b";
指数名称可以被丢弃(相同的JavaScript):
import * as whatever from "./my-module";
console.log(whatever);
// Logs: { A: [Function: hello], B: [Function: world] }
如果所有添加的文件中index.ts出口以及如何编写测试用例? 就像如果d.ts并没有加入到index.ts如何避免这种情况编程 – Raghavendra
@Raghavendra因为一切都是'object'一个可以简单地遍历键。像这样:'import * as foo from“./bar”; console.log(Object.keys(foo).length)//日志导入计数' – marvinhagemeister
这不是我要求的 以上面的答案为例,我想写测试来检查他们是否添加了所有a.ts,b .ts在index.ts文件中? – Raghavendra
[打字稿1.8模块:进口从文件夹中的所有文件]的可能的复制(http://*.com/questions/38158429/typescript-1 -8模块,进口全文件,从文件夹) –