从延迟加载的脚本扩展类

时间:2018-06-26 09:39:21

标签: javascript angular typescript

我有一个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();
   });
}
...

因此,非常赞赏任何优雅的方式。

0 个答案:

没有答案
相关问题