【发布时间】:2015-09-11 12:38:14
【问题描述】:
我一直在翻阅 StackOverflow 帖子和多篇博文,但似乎找不到答案。
我正在使用 VS Code、nodejs、typescript 和 gulp。 当我将所有模块控制器代码放入一个文件时,如下所示:
<controllers.ts>
module Controllers {
export class Api {
get(controllerName:string):IController {
}
}
}
module Controllers {
export interface IController {
performAction(actionName:string):any;
}
}
module Controllers {
export class ControllerBase implements IController {
performAction(actionName:string):any {
}
}
}
module Controllers {
export class UserController extends ControllerBase {
}
}
export = Controllers;
Gulp 能够编译它并且 nodejs 正确运行它。
不过,当我把它分成多个文件时,我似乎无法编译它:
<controllers.ts>
module Controllers {
export class Api {
get(controllerName:string):IController {
}
}
}
module Controllers {
export interface IController {
performAction(actionName:string):any;
}
}
module Controllers {
export class ControllerBase implements IController {
performAction(actionName:string):any {
}
}
}
export = Controllers;
<UserController.ts>
module Controllers {
export class UserController extends ControllerBase {
}
}
我试过添加
/// <reference path="./controllers.ts" />
到我的 UserController.ts 文件的顶部。当我这样做时,它仍然找不到 ControllerBase。
我试过了
export class Controllers.UserController extends Controllers.ControllerBase
它不喜欢 UserController 之前的控制器,但如果我删除那个控制器并让它看起来像这样:
export class UserController extends Controllers.ControllerBase
那么显然它将 UserController 放在不同的模块中。
另外,像这样导入它:
import Controllers = require("./controllers");
似乎也没有帮助。我不确定还能尝试什么。任何帮助将不胜感激。这似乎不应该实现。
【问题讨论】:
标签: node.js typescript gulp visual-studio-code