[英]Typescript: dynamically import classes
我喜歡動態導入一個 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()
假設Task
類位於task.ts
,則可以使用動態導入:
const task = await import("./task");
當您需要導入時。
喜歡我
const x = (async () => {
let file = "./v";
const f = await import( file);
return f;
})().then(f => {
const s = new f.default();
s.run();
})
.catch(error => {
// Handle/report error
console.error(error);
});
在這里上課
export default class V{
constructor() {
}
run(){
console.log("fire");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.