如何从TypeScript中的目录导入所有模块?

时间:2016-11-20 10:14:28

标签: typescript

在TypeScript handbook中,描述了几种导入模块的技术:

  • 从模块导入单个导出:import { ZipCodeValidator } from "./ZipCodeValidator";
  • 从模块导入单个导出并重命名:import { ZipCodeValidator as ZCV } from "./ZipCodeValidator";
  • 导入整个模块:import * as validator from "./ZipCodeValidator";

我希望还有一个选择,但我无处可寻。是否可以从给定目录导入所有模块?

我想语法应该或多或少是这样的:import * from "./Converters"

1 个答案:

答案 0 :(得分:31)

不,这是不可能的。大多数人所做的是创建一个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] }