故事书迁移到 CSF 的打字稿问题

Posted

技术标签:

【中文标题】故事书迁移到 CSF 的打字稿问题【英文标题】:Typescript problem with storybook migration to CSF 【发布时间】:2021-02-18 12:19:03 【问题描述】:

将 50 多个故事迁移到 CSF 后,它们不会出现在故事​​书中。经过一番挖掘,我发现我必须将组件键传递给默认导出,并将组件作为它的值

export default 
title: "Title"
component: MyComponent

问题是我所有的组件都在使用 Typescript,并且由于某种原因出现了错误:

模块的默认导出具有或正在使用私有名称 'MyComponentProps'.ts(4082)

对此的任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您可以将他们的道具更改为type 而不是interface,就像@Mayank 建议的那样,或者您可以简单地确保export 他们的道具。

例子:

interface Props 
  name: string;


const ( name : Props) => 
  return <div>name</div>;

如果您尝试为此组件创建故事,此代码将提供您获得的 TS4082。

如果导出接口:

export interface Props 
  name: string;


const ( name : Props) => 
  return <div>name</div>;

错误会消失。

【讨论】:

【参考方案2】:

我假设您已经为 MyComponentProps 定义了一个接口。尝试将其更改为类型声明。这为我解决了问题。

【讨论】:

以上是关于故事书迁移到 CSF 的打字稿问题的主要内容,如果未能解决你的问题,请参考以下文章

MDX - 故事书 + React + 打字稿

如何将故事书嵌套的 storiesOf api 转换为 CSF 格式

迁移到打字稿后,Firebase 云功能无法正常工作

从 5 到 6 的角度迁移后无法构建 - 找不到模块“打字稿”

尝试将 vue-cli 项目迁移到打字稿时出错 [关闭]

在故事书预览中定义一个功能组件