如何为具有默认导出的模块编写类型定义
How do I write the type definition for a module with a default export
我想为 storybook-router
编写类型定义。它不需要那么准确,因为这是一个次要的开发工具(即 any
s 是可以接受的),但我什至无法让它工作。
我想表达的是:
import StoryRouter from 'storybook-router';
...其中 StoryRouter
是与 @types/storybook__react
.
中的接口 StoryDecorator
相匹配的函数
我尝试了以下定义文件:
import { StoryDecorator } from '@storybook/react';
declare type StoryRouter = StoryDecorator;
export default StoryRouter;
不幸的是,这会导致以下错误:
TS7016: Could not find a declaration file for module 'storybook-router'. '/<path snipped>/node_modules/storybook-router/dist/StoryRouter.js' implicitly has an 'any' type.
Try npm install @types/storybook-router
if it exists or add a new declaration (.d.ts) file containing declare module 'storybook-router';
但是,如果我使用最后一个示例 (declare module 'storybook-router'
),我似乎不知道如何设置默认导出。
表示这种类型的正确方法是什么?
您无需在 .d.ts 文件中导入,只需声明模块即可。
通常,它看起来像这样(最简单的用例):
// storybook-router.d.ts
declare module 'storybook-router' {
const StoryDecorator:any;
export default StoryDecorator;
}
我想为 storybook-router
编写类型定义。它不需要那么准确,因为这是一个次要的开发工具(即 any
s 是可以接受的),但我什至无法让它工作。
我想表达的是:
import StoryRouter from 'storybook-router';
...其中 StoryRouter
是与 @types/storybook__react
.
StoryDecorator
相匹配的函数
我尝试了以下定义文件:
import { StoryDecorator } from '@storybook/react';
declare type StoryRouter = StoryDecorator;
export default StoryRouter;
不幸的是,这会导致以下错误:
TS7016: Could not find a declaration file for module 'storybook-router'. '/<path snipped>/node_modules/storybook-router/dist/StoryRouter.js' implicitly has an 'any' type. Try
npm install @types/storybook-router
if it exists or add a new declaration (.d.ts) file containingdeclare module 'storybook-router';
但是,如果我使用最后一个示例 (declare module 'storybook-router'
),我似乎不知道如何设置默认导出。
表示这种类型的正确方法是什么?
您无需在 .d.ts 文件中导入,只需声明模块即可。
通常,它看起来像这样(最简单的用例):
// storybook-router.d.ts
declare module 'storybook-router' {
const StoryDecorator:any;
export default StoryDecorator;
}