如何实例化一个类(例如,使用已知的空构造函数),例如:
在api/EmptyClass1.ts
,我有:
export default class EmptyClass1 {
}
并且,位于 api/EmptyClass2.ts
,我有:
export default class EmptyClass2 {
}
我想要这个功能:
function(filepath:string):any{
return Object.fromFile(filepath); //this line is mock code
}
返回 EmptyClass1
的新实例或EmptyClass2
,如果参数filepath:string
是 "api/EmptyClass1.ts"
或"api/EmptyClass2.ts"
,分别。
定义类的文件在编写函数时可能未知,可能包含任意数量的文件。因此,使用import
声明每个类,然后使用 switch 或 if-then 语句不是可接受的解决方案。
定义类的 .ts 文件被转码为 JavaScript,并作为 .js 文件驻留在应用程序的 .build 文件夹中。
我在node.js(最新版本)上使用typescript。
最佳答案
改用require
,你的问题就会得到解决。如果该文件可能不存在,可以使用 optional-require如果您想在不使用 try/catch
的情况下进行回退。
function fromFile(filepath:string):any{
// return Object.fromFile(filepath); //this line is mock code
return require(filepath);
}
或者直接调用 require
而不是将其包装在另一个函数中。
关于node.js - 实例化一个在运行时知道文件路径的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59490400/