打字稿:2.7.1
路径:xxx / xx
export default class Com extends React.Component {
...
}
动态导入
let foo:Promise<any> = import('xxx/xx'); // right
但我想知道通用的具体类型。
答案 0 :(得分:2)
最简单的方法是让编译器为你推断:
// foo will be inferred to a promise that returns an object of the module type
// If you hover in vscode over foo you will see Promise<typeof "path to xxx">
let foo = import('./xxx);
如果您确实需要该类型,则可以静态导入模块并按照建议使用typeof
here。只要不使用模块的静态导入,就不会生成import语句:
import * as unusedModuleImport from "./xxx"; // will be ommited as long as you don't use it
type ModuleType = typeof unusedModuleImport;
let foo: Promise<ModuleType> = import('./xxx);
注意强>
上面的答案是Typescript 2.9之前的最佳解决方法。 Typescript 2.9添加了对import types
的支持export async function bar() {
let foo: typeof import("./foo") = await import("./foo");
}