在Typescript中我有一个这样的模块:
export module ABC{
export class classA {
}
}
我想从B类继承classA。
class classB {
}
如果我这样做
export module ABC{
export class classA extends classB {
}
}
编译器告诉我classB必须是一个类。顺便说一句,classB位于一个单独的文件中。
我怎样才能使它工作? 提前致谢
确定,
我决定定义一个模块和另一个模块的内部类的内部实例属性,而不是扩展内部类。就像那样:
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 的订阅属性维持其值,以便在调用 unsubscribeLogOff 订阅的值为真。
但是当我打电话给 unsubscribeLogOff 订阅的值未定义时,情况并非如此。
我无法理解。你能救我吗?
由于
答案 0 :(得分: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
的顶级对象,那么通常不需要在module
块中将您的内容包裹得更深一些。