5

我有一个看起来像这样的类:

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

我的代码有什么问题?

4

1 回答 1

7

你的代码对我来说编译得很好。这是我所拥有的:

游戏模块.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

编译器报告没有问题。你能检查一下你是否可以准确地编译这两个类吗?另外,请发布您的完整代码(如果可能)。从错误消息中,我假设您的模块位于另一个目录中。

于 2012-10-16T11:44:07.873 回答