我正在“log.ts”文件中导出一个简单的函数:
export function message(s : string) {
console.log(s);
}
这是由同一目录中的文件(“MyController.ts”)导入的:
import log = module("./log");
class MyController {
a : string = "aaa";
constructor () {
log.message("hello world");
}
}
编译后,我得到以下 JS:
define(["require", "exports", "./log"], function(require, exports, __log__) {
var log = __log__;
var MyController = (function () {
function MyController() {
this.a = "aaa";
log.message("hello world");
}
return MyController;
})();
})
//@ sourceMappingURL=MyController.js.map
这个定义函数应该返回 MyController。因为它没有,所以这个片段中的回调没有得到控制器参数的任何东西:
require(["MyController"], function (controller) {
theRoute.controller = controller;
defer.resolve();
$rootScope.$apply();
});
我可以通过在定义调用中手动添加返回来解决这个问题,但这不是一个好的解决方法,因为 JS 是由 TS 编译器输出的。
我做错了什么还是打字稿中的错误?