我有一个看起来像这样的课程:
export module GameModule {
export class Game {
private boardContainer: HTMLElement;
private board: number[][];
constructor (container: HTMLDivElement) {
this.boardContainer = container;
this.board = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
this.drawGrid();
}
drawGrid() {
}
}
}
和主要应用程序:
import GameModule = module("./GameModule");
window.onload = () => {
new GameModule.GameModule.Game(<HTMLDivElement> document.getElementById('content'));
};
但是当我尝试编译代码时,我遇到了错误:
>tsc --module amd app.tss
app.tss(1, 27): The name '"./GameModule"' does not exist in the current scope
app.tss(1, 27): A module cannot be aliased to a non-module type
app.tss(4, 8): Expected car, class, interface, or module
我的代码出了什么问题?
答案 0 :(得分:7)
您的代码编译好我。这就是我所拥有的:
<强> GameModule.ts 强>
export module GameModule {
export class Game {
private boardContainer: HTMLElement;
private board: number[][];
constructor (container: HTMLDivElement) {
this.boardContainer = container;
this.board = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
this.drawGrid();
}
drawGrid() {
}
}
}
<强> Main.ts 强>
import GameModule = module("./GameModule");
window.onload = () => {
new GameModule.GameModule.Game(<HTMLDivElement> document.getElementById('content'));
};
都在同一目录中。当我用
编译它时tsc --module amd Main.ts
编译器报告没有问题。你能检查一下你是否可以完全编译这两个类吗?另外,请发布完整的代码(如果可能)。从错误消息我会假设您的模块位于另一个目录中。