带有路径变量类型的TypeScript动态导入
我有一个TS文件目录,我在配置对象中指定了这个目录的路径。然后,我使用带有路径变量类型的TypeScript动态导入,typescript,Typescript,我有一个TS文件目录,我在配置对象中指定了这个目录的路径。然后,我使用readdirSync获取所有文件并循环它们,实例化它们,然后将实例添加到对象中。以下是内部循环: const path = join(config.path, file); // file = foo.js const className = pascalCase(basename(file, ".js")); // Foo type ModuleType = typeof import(path); // uh
readdirSync
获取所有文件并循环它们,实例化它们,然后将实例添加到对象中。以下是内部循环:
const path = join(config.path, file); // file = foo.js
const className = pascalCase(basename(file, ".js")); // Foo
type ModuleType = typeof import(path); // uh-oh
const File = await import(path);
const Obj = File[className]; // [Function: Foo]
someObj.handlers[className] = new Obj();
我在尝试设置导入的类型时遇到TS错误:
应为[ts]字符串文字。
[ts]“path”引用了一个值,但在此处用作类型
我可以做些什么来告诉TS更多关于我正在导入和实例化的类的信息吗?我知道这是因为我使用了一个变量作为路径
您在运行时动态创建它。这些类型在运行时没有意义
如果希望在运行时为正在构建的对象创建设计时智能感知,则必须编写一个接口
,以手动对其进行描述
如果你不知道形状,那么你就不需要类型信息。想了很多…哦,好吧,我想需要重新考虑一些事情!