打字稿和延迟加载导入

时间:2020-06-30 04:34:02

标签: typescript

我正在尝试输入此内容,但无法正常工作。有什么想法吗?

错误是:

const Loadable = (importFunc, {fallback = Loading} = {fallback: Loading}) => {
  const LazyComponent = lazy(importFunc);

  return (props: Props) => (
    <Suspense fallback={fallback}>
      <LazyComponent {...props} />
    </Suspense>
  );
 };

export default Loadable;

错误是:

TS7006: Parameter 'importFunc' implicitly has an 'any' type.

我尝试过类似的事情:

{ (): Promise<typeof import(string)>}

然后出现错误并说: TS1141:需要字符串文字

很明显,我需要动态它,因为我的大多数页面都使用Loadable。

有什么想法吗?

这是怎么称呼的:

import Loadable from 'components/Loadable';

export default Loadable(() => import('./Login'));

1 个答案:

答案 0 :(得分:0)

这似乎很好:

type ImportFN = () => Promise<{default: React.ComponentType}>;

const Loading = <div>loading...</div>;

const Loadable = (
  importFunc: ImportFN,
  {fallback = Loading} = {fallback: Loading}
) => {
相关问题