打字稿:动态导入类

时间:2018-08-15 04:25:28

标签: typescript import

我喜欢动态导入Typescript类。 我使用新的动态函数导入来运行所有程序,但是如何动态类导入?

我有一个肮脏的骇客,看起来像这样:

// main.ts
async function main2() {
    const G = './test1'
    const TASK_IMPORT_FUNCTION = await import(G)
    const TASK_CLASS = TASK_IMPORT_FUNCTION.getTask()
    const TASK = new TASK_CLASS(__dirname)
    const R_TASK = TASK.run()
}
main2()

// test1.ts
export class Task {
    constructor(inputCwd: string) {}
    // ...
}

export function getTask() {
    return Task
}

所以我的问题是:如何摆脱getTask()函数并以动态方式直接导入类?

解决方案

// main.ts
async function main2() {
    const TASK_IMPORT = await import(G)
    const TASK_CLASS = TASK_IMPORT.Task
    const TASK = new TASK_CLASS(__dirname)
    const R_TASK = TASK.run()
}
main2()

1 个答案:

答案 0 :(得分:0)

假设Task类在task.ts中,则可以使用动态导入:

const task = await import("./task");

当您需要导入时。