为了整合一个AMD友好的TypeScript应用程序框架,我遇到了一个障碍:我似乎无法从当前路径下拉到另一个目录中导入模块。我可以导入上面的模块,但是下面会抛出错误:
TypeScript Error: The name ''../core/View'' does not exist in the current scope
这是我(非常基本的)应用程序的结构:
app/
- core/
- View.ts
- views/
- HomeView.ts
- Application.ts
在我的Application.ts
文件中,我可以成功导入这样的模块:
import HomeView = module( 'views/HomeView' );
export class Application {
constructor() {
console.log( 'initializing Application' );
}
}
当使用--module AMD标志时,正确输出
define(["require", "exports", 'views/HomeView'], function(require, exports, __HomeView__) {
var HomeView = __HomeView__;
var Application = (function () {
function Application() {
console.log('initializing Application', HomeView);
}
return Application;
})();
exports.Application = Application;
})
现在,问题是当我跳转到views/HomeView.js
并尝试导入我的core/View
BaseClass以扩展自:
import View = module('../core/View');
export class HomeView {
constructor() {
console.log('Hello HomeView!');
}
}
这引发了这个完整的错误:
TypeScript Error: The name ''../core/View'' does not exist in the current scope
File: test/src/app/views/HomeView.ts
Start: 21, Length: 14
Line: import View = module('../core/View');
---------------------------^^^^^^^^^^^^^^--
这是编译器中的错误,还是我对模块导入的理解有误?为什么我可以导入views/HomeView
,但不能导入../core/View
?
非常感谢任何帮助。
答案 0 :(得分:5)
我设法使用根路径让它工作 - 虽然我不能告诉你为什么你的相对路径不起作用。
import view = module("./app/core/View");