角度模块不适用于esnext模块配置

时间:2018-07-31 18:22:13

标签: angular typescript module

我目前正在逐步更新旧代码库,并且遇到一些模块/命名空间问题。

我们有一个models.ts文件,看起来像这样

angular.module('models', ['ngResource']);
import './company';

company.ts内,我们使用工厂函数ACCompany声明了一个命名空间,此后我们注册到'models'模块

namespace Company {
  ....
  export function ACCompany(
  $log: ng.ILogService,
  $q: ng.IQService,
  $resource: ng.resource.IResourceService,
  conf: IACConf,
 ) { ... }
}

angular.module('models').factory('CompanyAPI', Company.ACCompany);

这曾经可以正常工作,但是最近我将module中的tsconfig键更改为“ esnext”,并将moduleResolution键更改为“ node”。突然似乎“模型”模块不可用。

半身?

1 个答案:

答案 0 :(得分:0)

问题基本上是对es6模块进行静态分析。因此,company.ts中的代码是在models.ts中的代码之前执行的。

我的解决方案是创建另一个导入models.ts(首先)和company.ts(第二)的文件,然后将modles.ts更改为angular.module('models', ['ngResource']);语句