无法在TypeScript中从文件加载类

时间:2012-10-16 11:01:15

标签: typescript

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

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

我的代码出了什么问题?

1 个答案:

答案 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

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