0

Typescript には、次のようなモジュールがあります。

export module ABC{
  export class classA {
  }
}

クラスBからクラスAを継承したいと思います。

class classB {
}

私がこのようなことをしたら

export module ABC{
  export class classA extends classB {
  }
}

コンパイラは、classB はクラスでなければならないと教えてくれます。ちなみにclassBは別ファイルになっています。

どうすればそれを機能させることができますか??? 前もって感謝します


Ok、

内部クラスを拡張する代わりに、モジュールと、別のモジュールの内部クラスの内部インスタンス プロパティを定義することにしました。そのように:

File1.ts

export module moduleA {

    export class classA {

      subscribed: bool;

      constructor () { }

      public unsubscribeLogOff(eventName) {
        this.subscribed = false;
      }
      public subscribeLogOff(eventName) {
        this.subscribed = true;
      }
    }
}

File2.ts

import m = module("moduleA"); 

export module moduleB {

    var instanceA: m.moduleA.classA = null;

    export function activate() {
      if( this.instanceA == null ) instanceA = new m.moduleA.classA();
      instanceA.subscribeLogOff(eventName);
    }

    export function deactivate() {
      if( instanceA == null ) return;
      instanceA.unsubscribeLogOff(eventName);
    }
} 

ここでの問題は、subscribeLogOff を呼び出した後、classA の subscribedプロパティがそのを維持することを期待していたため、unsubscribeLogOff を呼び出すとsubscribedの値が true になることでした。

しかし、unsubscribeLogOffを呼び出すと、これは当てはまりませんsubscribedの値はundefinedです。

私は理解できない。手伝って頂けますか ???

ありがとう

4

1 に答える 1

1

これを機能させるには、コードは次のようになります。

File1.ts

export module ABC {
    export class classA {
    }
}

File2.ts

import otherFile = module('file1');

export module ABC {
    export class classA extends otherFile.ABC.classA {
    }
}

トップレベルのオブジェクトに。のマークが付いている場合、通常export、コンテンツを1レベル深くmoduleブロックでラップする必要はありません。

于 2012-11-28T08:55:16.363 に答える