0

如何使用导出的类转换变量的类型?比如这样:

游戏管理器.ts:

export class GameManager {}

播放器.ts:

private _manager: GameManager;

当我使用 a 时/// <reference path="GameManager.ts" />,我收到一条错误消息,说 GameManager 超出范围或类似的东西。这究竟是如何工作的?

4

2 回答 2

5

这里有几种情况,具体取决于export class GameManager {}行的位置:

选项 1:您正在使用“外部”模块(即您export在顶层有任何声明)。

在这种情况下,您应该删除reference标签并改为编写:

import Manager = module("GameManager"); // N.B. this is the filename, not the class name
...
private _manager: Manager.GameManager;

选项 2:您正在使用“内部”模块(即您export class在一个module块内,但不是一个export module块)

在这种情况下,你应该保留你的/// <reference...标签并写下:

private _manager: MyGame.Manager; // N.B. Assuming here that 'GameManager' lives inside 'module MyGame { ... }'

可能是您实际上并不想要export类中的关键字 - 如果您这样做,则根本不需要限定它(假设在顶层没有其他东西被导出)。

于 2012-11-28T22:01:26.380 回答
1

对于内部模块,您必须将导出的类包装在模块中,因此 GameManager.ts 文件应为:

module Game
{
    export class GameManager{}
}

现在您可以通过以下方式访问 GameManager 类

Game.GameManager

于 2012-11-28T22:01:26.500 回答