我目前正在逐步更新旧代码库,并且遇到一些模块/命名空间问题。
我们有一个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”。突然似乎“模型”模块不可用。
半身?
答案 0 :(得分:0)
问题基本上是对es6模块进行静态分析。因此,company.ts
中的代码是在models.ts
中的代码之前执行的。
我的解决方案是创建另一个导入models.ts
(首先)和company.ts
(第二)的文件,然后将modles.ts
更改为angular.module('models', ['ngResource']);
语句