在Typescript中,我有一个这样的模块:
export module ABC{
export class classA {
}
}
我想从B类继承A类。
class classB {
}
如果我做这样的
export module ABC{
export class classA extends classB {
}
}
编译器告诉我类B必须是一个类。顺便说一下,类B位于一个单独的文件中。
我怎样才能让它工作???提前感谢
好,
我决定定义一个模块和另一个模块的内部类的内部实例属性,而不是扩展内部类。就像这样:
文件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的属性Subscribe保持其值,因此当调用unsubscribeLogOff时, subscribe但当我调用unsubscribeLogOff时,情况并非如此,已订阅的值为未定义。 我无法理解。你能帮我吗??? 感谢
要实现这一点,您的代码应该如下所示:
文件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
块中将您的东西更深地包装一层。