0

エクスポートされたクラスで変数の型をキャストするにはどうすればよいですか? このような:

GameManager.ts:

export class GameManager {}

Player.ts:

private _manager: GameManager;

を使用する/// <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 に答える