我有一个文件说MyFactory.ts。文件内容如下:
export type CommandFactory = () => string[] | undefined;
export enum FactoryIds {commandFactory : 'commandFactory'}
Run Code Online (Sandbox Code Playgroud)
现在我想将此文件动态导入到另一个文件(例如main.ts)中并CommandFactory在其中使用类型。内容main.ts如下:
const Factory = await import('./MyFactory');
const commandFactories : Factory.CommandFactory[] = []; //Here I am getting error that Property 'CommandFactory' does not exist on type 'typeof import('MyFactory')'
Run Code Online (Sandbox Code Playgroud)
虽然我可以轻松通过FactoryIds但Factory.FactoryIds无法CommandFactory使用Factory.CommandFactory. 我想知道如何动态导入文件CommandFactory中的类型main.ts。
动态导入类型是没有意义的,因为类型是静态的\xe2\x80\x93,它们在编译后被消除。如果需要从要动态导入的模块中导入类型,可以单独导入类型:
\nimport type { CommandFactory } from \'./MyFactory\';\n\nconst Factory = await import(\'./MyFactory\');\nRun Code Online (Sandbox Code Playgroud)\nimport type语句在编译期间被消除,因此您的模块仍将仅在运行时动态导入。
| 归档时间: |
|
| 查看次数: |
2842 次 |
| 最近记录: |