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

あなたのコードは私にとってはうまくコンパイルされます。ここに私が持っているものがあります:

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

コンパイラは問題を報告しません。これら 2 つのクラスを正確にコンパイルできるかどうかを確認していただけますか? また、完全なコードを投稿してください (可能であれば)。エラー メッセージから、モジュールが別のディレクトリにあると推測できます。

于 2012-10-16T11:44:07.873 に答える