这是场景:
使用 Swagger,我为我的 REST 服务创建了一个 api 规范。然后,我生成 angular typescript 样板文件,用于从 Swagger Editor 工具调用我的服务。
当我生成样板文件时,有多个文件都使用 typescript 内部命名空间,而我的项目的其余部分是 AMD,所以我试图将此编译视为第三方非 AMD 库。当我编译打字稿文件时,我将发送到单个 javascript 文件。
我的项目使用 RequireJS,并且我已经使用 RequireJS 注册了我的单个 javascript 文件,如下所示:
requirejs.config({
paths: 'myApi': 'my/path/to/myApi', // There is no ts file with this name but there is a js once compiled
shim: {
'myApi': {
init: () => {
return this.API; // The top level object from the boilerplate is API
},
exports: 'myApi'
}
}
}
})
在另一个文件中,我有代码:
import myApi = require('myApi');
console.log(myApi);
在我上面的同一个文件中:
import angular = require('angular');
它以与 myApi 类似的方式向 RequireJS 注册。打字稿没有找到角度的问题。
当我编译我的项目时,我得到了打字稿
错误 TS2307:无法从尝试导入的文件中找到模块“myApi”。
当我运行实际项目时,正确的 myApi 对象会记录到控制台。
我怎样才能让 Typescript 看到这个模块(或者以其他方式抑制这个错误消息)?