Apparentlyとすると、 'import import xx = module( "xx")'と入力することができます。TypeScript - '輸出輸入'とは何ですか?
しかし、それはどういう意味ですか?私は仕様でそれを見ていない。
Apparentlyとすると、 'import import xx = module( "xx")'と入力することができます。TypeScript - '輸出輸入'とは何ですか?
しかし、それはどういう意味ですか?私は仕様でそれを見ていない。
良好な観察。
これは、インポートされたモジュール全体を、囲みモジュール内で作成された外部モジュールのように動作させるコンポジション手法です。短縮された例を以下に示します。
module MyModule {
export class MyClass {
doSomething() {
}
}
}
declare module EnclosingModule {
export import x = module(MyModule);
}
var y = new EnclosingModule.x.MyClass();
エクスポートキーワードは、モジュールを外部モジュールにします。この場合、内包モジュールの内部モジュールが最初に定義されていないにもかかわらず、内包モジュールの外部モジュールをMyModule
にしています。
なぜですか?
これは、異なるコンテキストで繰り返すのではなく、モジュールを再利用する便利な方法だと思います。論理的に見える複数の場所でモジュールにアクセスできるようになります。
0.8.1.1から、他のモジュールで宣言されたクラスを拡張するクラスをエクスポートするときは、この構文を使用する必要があるようです。例えば
は、0.8.1で、あなたがこれを言うことができます:
import mUiBase = module("../UiBase");
export class BaseViewModel extends mUiBase.UiBase {
}
しかし、0.8.1.1で、それはあなたにエラーを与える「エクスポートクラスは、プライベートモジュールからクラスを拡張する」ので、あなたは何をする必要がありますこれは代わりに
export import mUiBase = module("../UiBase");
export class BaseViewModel extends mUiBase.UiBase {
}
おそらくそれは意図されたものであり、単なるバグではありません。
CodePlexについての議論から私は理解していますが(現時点ではリンクが見つかりません...)、これはバグであり、エクスポートのインポートは一時的な回避策です。 – JcFx
私は0.8.1.1を使っていました...ちょうど0.8.3にアップグレードされ、私の "輸出輸入"はすべてエラーになりました(単に輸出を取り除くことができます)。だから、JcFxはそれがバグであるということに関しては正しかった。 Steveがこれに本当の使い方を説明したことは不思議で、それではどうですか? – parliament
この質問は、約4年前にTypeScriptから削除された構文に関するものです。 –