如何动态导入命名导出TypeScript

时间:2020-05-14 19:48:51

标签: typescript

const { SchemaLink } = require('apollo-link-schema')

我已经尝试过const { SchemaLink } = import('apollo-link-schema'),但是它不起作用。 ESLint仍然显示错误@typescript-eslint/explicit-function-return-type

如何在TypeScript中动态导入命名导出?

1 个答案:

答案 0 :(得分:1)

require不同,JavaScript的动态import是异步的,返回指定模块的Promise。因此,仅在Promise成功解决后,模块及其导出才可用。我们可以直接使用标准的Promise API

import('apollo-link-schema').then(({ SchemaLink }) => {
  // Use SchemaLink here
});

另外,通过利用async / await,我们可以写

const { SchemaLink } = await import('apollo-link-schema');
// Use SchemaLink here