如何使用导出的类转换变量的类型?比如这样:
游戏管理器.ts:
export class GameManager {}
播放器.ts:
private _manager: GameManager;
当我使用 a 时/// <reference path="GameManager.ts" />
,我收到一条错误消息,说 GameManager 超出范围或类似的东西。这究竟是如何工作的?
如何使用导出的类转换变量的类型?比如这样:
游戏管理器.ts:
export class GameManager {}
播放器.ts:
private _manager: GameManager;
当我使用 a 时/// <reference path="GameManager.ts" />
,我收到一条错误消息,说 GameManager 超出范围或类似的东西。这究竟是如何工作的?
这里有几种情况,具体取决于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
类中的关键字 - 如果您这样做,则根本不需要限定它(假设在顶层没有其他东西被导出)。
对于内部模块,您必须将导出的类包装在模块中,因此 GameManager.ts 文件应为:
module Game
{
export class GameManager{}
}
现在您可以通过以下方式访问 GameManager 类
Game.GameManager