动态导入不适用于导出的模块打字稿

时间:2020-07-02 13:25:39

标签: typescript deno

我正在使用新的Web框架,动态导入不应该进行默认导出吗?那么如何使用默认导出来做到这一点?

哈哈。

import app from "../trap/app.ts";

//some code

export default app;

XD.ts

import app from "./lol.ts";

declare global {
    interface Window {
        Log: any;
    }
}

export default class ServiceProvider {
    protected app: any;
    protected log: any;

    constructor(){
        this.app = app;
    }
}

WTF.ts

import ServiceProvider from "../XD.ts";

export class WTFProvider extends ServiceProvider {
    register(){
        console.log("Register");
        (<any>window).Log = "Greets from register";
    }

    boot(){
        console.log("Boot");
        console.log((<any>window).Log);
    }
}

我不能在动态导入中调用WTFProvider,如果

哈哈。

constructor(){
    this.app = app;
}

但是如果我删除它

constructor(){

}

动态导入代码基本上只是基本的动态导入

    let filePath = this.providerPath + providerName + '.ts';

    let checkFile = await this.exists(filePath);

    if (checkFile) {
        let importedController = await import("file://" + filePath);
        let provider = new importedController[providerName]();

        this.purpose.push({
            name: provider.constructor.name,
            value: provider
        });
    }else{
        console.log(error("Provider " + providerName + " doesn't exist!"))
    }

动态导入有效!

0 个答案:

没有答案