diff --git a/types/loadable__component/index.d.ts b/types/loadable__component/index.d.ts
index c4877bd8a9..5e1faffda7 100644
--- a/types/loadable__component/index.d.ts
+++ b/types/loadable__component/index.d.ts
@@ -14,15 +14,16 @@ export type DefaultComponent
= React.ComponentType
| DefaultImportedCompon
export interface Options {
fallback?: JSX.Element;
+ ssr?: boolean;
}
-export type LoadableComponent = React.ComponentType;
+export type LoadableComponent = React.ComponentType & { preload(props?: T): void };
export type LoadableLibrary = React.ComponentType<{
fallback?: JSX.Element;
children?: (module: TModule) => React.ReactNode;
ref?: React.Ref;
}> &
- TModule;
+ TModule & { preload(props?: object): void };
declare function lib(
loadFn: (props: object) => Promise,
diff --git a/types/loadable__component/loadable__component-tests.tsx b/types/loadable__component/loadable__component-tests.tsx
index d286711be1..d5abfa3a5c 100644
--- a/types/loadable__component/loadable__component-tests.tsx
+++ b/types/loadable__component/loadable__component-tests.tsx
@@ -36,8 +36,14 @@ function importLibLoader() {
// Should allow passing JSX element to fallback in options
loadable(defaultImportComponentLoader, { fallback: loading...
});
+ // Should allow passing boolean to `ssr` in options
+ loadable(defaultImportComponentLoader, { ssr: true });
+
// Should allow passing `fallback` prop to loadable component
loading...} />;
+
+ // Should allow preloading
+ LoadableComponent.preload();
}
// lazy
@@ -52,6 +58,9 @@ function importLibLoader() {
// Should allow passing fallback prop
loading...} />;
+
+ // Should allow preloading
+ LazyComponent.preload();
}
// loadable.lib
@@ -71,6 +80,9 @@ function importLibLoader() {
// Should allow passing fallback JSX element
loadable.lib(importLibLoader, { fallback: loading lib...
});
+ // Should allow passing boolean to `ssr` in options
+ loadable.lib(defaultImportComponentLoader, { ssr: true });
+
// Should allow passing fallback prop
Loading library...}>
{({ getTestObj }) => getTestObj().foo}
@@ -80,6 +92,9 @@ function importLibLoader() {
const ref = React.createRef();
;
ref.current!.getTestObj().foo;
+
+ // Should allow preloading
+ LoadableLibrary.preload();
}
// lazy.lib
@@ -105,6 +120,9 @@ function importLibLoader() {
const ref = React.createRef();
;
ref.current!.getTestObj().foo;
+
+ // Should allow preloading
+ LazyDefaultLibrary.preload();
}
// loadableReady