2016-06-12 9 views
0

Typescriptでどのようにクラスにクラスを含めますか?私はnativescriptで使用するために、AndroidのAPIをモデル化しようとしていますので、私は以下に示すように、モジュール内のクラスINAクラスを宣言する必要があります:Typescriptでクラスをネストする

export module myModule {  
    export class MasterClass { 

     static myVariable: number; 

     public static myFunction(param: string): boolean; 

     static class myClass2{ 
      someFunction():void; 
     } 
    } 
} 

しかし、これは例えば、エラーのすべての種類をスローします

エラーTS1005: '='が必要です。

と私はのような何かを行う場合:

myClass = Class {} 

をそれから私は、周囲の状況で初期化子を許可されていない約叫んコンパイルエラーを取得します。

どうすればtscが幸せで、myModule.MasterClass.myClass2.somefunction()を参照できるようにすることができますか? ?

+0

'somefunction'が静的である場合にのみ' myModule.MasterClass.myClass2.somefunction() 'が意味を持ちます –

答えて

0

あなたはtypescriptでそれを行うことはできません。これはjavaと同等ではありません。 Javaの内部クラスで

は、親クラスのインスタンスの一部であり、静的な内部クラスは、基本的には、専用の名前空間/閉鎖とその親クラスを使用すると、あなたがnamespaceとtypescriptですのそれを模倣することができます

export module myModule { 
    export namespace MyNamespace { 
     export var myVariable: number; 
     export function myFunction(param: string): boolean {} 

     export class MasterClass {} 

     export class MyClass2 { 
      someFunction(): void {} 
     } 
    } 
} 

静的メンバー/メソッドはすべて名前空間の変数/関数になり、ドット表記を使用して参照することができます。

export namespace MyModule { 
    export class MasterClass { 
     public myVariable: number; 
     public static myFunction(param: string): boolean { 
      return false; 
     } 
    } 
    export namespace MasterClass { 
     export class myClass2 { 
      public static someFunction(): void { 
       // implementation 
      } 
     } 
    } 
} 

MyModule.MasterClass.myClass2.someFunction(); 

PS:

0

あなたは、クラスと名前空間をマージすることができます。 moduleというキーワードは避けてください。代わりにnamespaceを使用してください。

関連する問題