エクスポートされたクラスで変数の型をキャストするにはどうすればよいですか? このような:
GameManager.ts:
export class GameManager {}
Player.ts:
private _manager: GameManager;
を使用する/// <reference path="GameManager.ts" />
と、GameManager が範囲外であるなどのエラーが表示されます。これはどのように正確に機能しますか?
エクスポートされたクラスで変数の型をキャストするにはどうすればよいですか? このような:
GameManager.ts:
export class GameManager {}
Player.ts:
private _manager: GameManager;
を使用する/// <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