gpt4 book ai didi

typescript - 如何为具有默认导出的模块编写类型定义

转载 作者:行者123 更新时间:2023-12-03 19:49:09 25 4
gpt4 key购买 nike

我想为 storybook-router 写一个类型定义.它不需要那么准确,因为这是一个次要的开发工具(即 any 是可以接受的),但我什至似乎无法让它工作。

我要代表的是:

import StoryRouter from 'storybook-router';

...其中 StoryRouter是匹配接口(interface) StoryDecorator的函数来自 @types/storybook__react .

我尝试了以下定义文件:
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;
}

关于typescript - 如何为具有默认导出的模块编写类型定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47903313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com