2016-04-27 18 views
0

JavaScriptコードをTypeScriptに変換していて、クラス定義を変換する最善の方法についています。TypeScriptは名前空間のクラスのクラス宣言をサポートしていますか?

これらはMarionetteから拡張されており、クラス名は名前空間になっています。たとえば、「XYZ」の名前空間使用して、このJavaScriptを:

class xyz.Marionette.AppRouter extends Marionette.AppRouter { 

が、この構文はサポートされていないようです:

xyz.Marionette.AppRouter = Marionette.AppRouter.extend({ 
    instance_name: "AppRouter", 

    functionName: function(options) { 
    } 
}); 

私は活字体で、このクラスのコマンドと同等を作成しようとしました。

名前空間を持つTypeScriptでクラスを宣言できますか?

これまでの回答(これまでのところ)は役に立ちますが、私はまだこの定義を表現する方法や、可能であってもわかりません。

答えて

0

クラスnameSpace.Marionette.AppRouterは{

名前空間と、その後を宣言Marionette.AppRouterを拡張するクラス:

namespace nameSpace.Marionette { 
    export class AppRouter { 

    } 
} 
+0

ありがとう、それは素晴らしい作品です! 私はまだ、拡張の面でクラスを定義する方法について完全にはわかりません。それは輸出クラスの中に入っていますか?または名前空間ブロックの下に?両方ともTypeScriptエラーが生成されます。前もって感謝します。 – Marc

0

は私がこれをモックアップしようとしたが、問題の参照を持っていました名前空間が同じであるため、AppRouterベース。最初の名前空間に "base"の修飾子を追加すると動作します。

namespace base.Marionette { 

    export class AppRouter { 

     Foo() { 
      return "Hello"; 
     } 
    } 
} 

namespace nameSpace.Marionette { 

    export class AppRouter2 extends base.Marionette.AppRouter { 

     Bar() { 
      var hello = this.Foo(); 
     } 
    } 
} 
+0

ご協力いただきありがとうございます。私はまだTypeScriptでこれを書くことができない理由を理解するのに苦労しています。 class nameSpace.Marionette.AppRouter extends Marionette.AppRouter { instance_name:string; }); 何か不足していますか? – Marc

関連する問題