0

在打字稿中,我有一个这样的模块:

export module ABC{
  export class classA {
  }
}

我想从 B 类继承 A 类。

class classB {
}

如果我做这样的事情

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

编译器告诉我 classB 必须是一个类。顺便说一句,classB 位于一个单独的文件中。

我怎样才能让它工作???提前致谢


行,

我决定不扩展内部类,而是定义一个模块和另一个模块的内部类的内部实例属性。就像这样:

文件1.ts

export module moduleA {

    export class classA {

      subscribed: bool;

      constructor () { }

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

文件2.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

要使这项工作正常进行,您的代码应如下所示:

文件1.ts

export module ABC {
    export class classA {
    }
}

文件2.ts

import otherFile = module('file1');

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

请注意,如果您有一个标有 的顶级对象,则通常不需要export将您的内容更深一层地包装在块中。module

于 2012-11-28T08:55:16.363 回答