3

javascriptの一部をTypeScriptに変換しようとしていますが、typescriptが名前空間をサポートしているかどうかわかりません。次のようなコードがあります。

/// <reference name="MicrosoftAjax.js"/>
Type.registerNamespace("MyNamespace.Controls.FloatingErrorPane");

MyNamespace.Controls.FloatingErrorPane = function (element)
{
...
}
MyNamespace.Controls.FloatingErrorPane.prototype =
{
...
}

ピリオドを含むtypescriptで名前空間を指定できるかどうか誰かが知っていますか?次のようなC#クラスで同じ名前を参照します。

[assembly: WebResource("MyNamespace.FloatingErrorPane.js", "text/javascript")]
ScriptControlDescriptor descriptor = new ScriptControlDescriptor("MyNamspace.Controls.Floating

ErrorPane "、this.ClientID);

4

2 に答える 2

4

ネストされたモジュールとクラスを使用して、名前空間スタイルの構文を取得できます。

この最初の例は、質問の例と一致します...

module MyNamespace {
    export module Controls {
        export class FloatingErrorPane {
            constructor(private element: HTMLElement) {
            }
        }
    }
}

var errorPane = new MyNamespace.Controls.FloatingErrorPane(myElement);

必要に応じて複数のファイルでモジュールを宣言できるため、2 番目のファイルをMyNamespace再度宣言することで追加できます...

module MyNamespace {
    export module Messaging {
        export class MessageHandler {

        }
    }
}
于 2012-10-26T14:52:54.043 に答える
0

はい、ご利用いただけます。ネストされた名前空間を作成するための表記法。

module MyNamespace.Controls {
    export class FloatingErrorPane {
        constructor(element: HTMLElement) {
        }
    }
}

var errorPane = new MyNamespace.Controls.FloatingErrorPane(myElement);

または、Sohnee で示されているように、モジュールを連続して宣言する構文を使用できます。ただし、この方法でクラスまたは関数を直接定義することはできません。したがって、これは有効ではありません:

MyNamespace.Controls.FloatingErrorPane = function() { ... }
于 2012-10-27T06:47:32.210 に答える