打字稿 - 简化导入

时间:2016-05-25 12:20:14

标签: import module typescript angular

有没有办法导入带别名的模块? 例如。我在文件夹common/services/logger/logger.ts中有角度服务。 如何使导入看起来像import {Logger} from "services",其中“services”包含我的所有服务?

我查看了thisthis,但不明白我该如何使用它。

2 个答案:

答案 0 :(得分:2)

创建一个包含所有服务的文件,并为其命名,例如: services.ts。该文件可以看作是一个桶,因为它将包含并导出您的所有服务。该文件可能如下所示:

export * from './logger/logger';
export * from ...;
etc.

现在您可以按如下方式导入此单个文件:

import * as Services from 'common/services';

然后您可以通过Services.Logger访问您的服务,或直接导入您想要的服务:

import {Logger} from 'common/services';

注意,您已经更改了路径,因为这只是一个示例。有关此技术的更多信息,请查看here

答案 1 :(得分:1)

为了解决这个问题,我使用了webpack。如果要在任何地方导入依赖项,则需要在webpack config中添加别名。例如,您在根目录中有shared个文件夹,其中包含services个文件夹。文件夹services应该index.ts导出您需要的所有服务(例如Logger)。别名是"services" => "shared/services"

要在WebStorm中自动完成工作,您只需将shared文件夹标记为“资源根目录”。