我有一个ts类扩展了另一个类,但是父类位于js库中,该库延迟加载,因此在编译后ts不能识别ts(所有内容均为cli cli默认值):
TSClassFile
export class TSClass extends JSClassFromScriptFile {
constructor() {
super();
}
}
使用TsClass的AngularComponent
@Component({...})
export class AngularComponent {
testTsClass: TsClass;
constructor() {
// loads scriptFile and initiates test param
this.loadScript('scriptFile').then( res => {
this.testTsClass = new TsClass();
});
}
// Adds script tag to head el with src of scriptName
loadScript(scriptName): Promise {
...
}
}
我找到了一个我不满意的“解决方案”,因为它根本没有可重用性:
...
testTsClass: any;
constructor() {
this.loadScript('scriptFile').then( res => {
class TSClass extends JSClassFromScriptFile {
constructor() {
super();
}
}
this.testTsClass = new TsClass();
});
}
...
因此,非常赞赏任何优雅的方式。