描述bug
我尝试在故事中使用泛型组件,但由于推断的类型错误而失败。
例如:
<script setup lang="ts" generic="TValue extends Array<number> = Array<number>">
export interface AreaChartProps<TValue extends Array<number> = Array<number>> {
lineColor?: string;
values: Array<TValue>;
...
}
而故事是:
import { AreaChart } from "@libs/charts/src";
import type { Meta, StoryObj } from "@storybook/vue3";
import type { ComponentProps } from "vue-component-type-helpers";
type ComponentType = ComponentProps<typeof AreaChart>;
type Story = StoryObj<ComponentType>;
const meta: Meta<ComponentType> = {
component: AreaChart // <-- Error is here
};
export default meta;
TypeScript错误:
Type '<TValue extends number[] = number[]>(__VLS_props: AreaChartProps<TValue> & VNodeProps & AllowedComponentProps & ComponentCustomProps, __VLS_ctx?: Pick<...> | undefined, __VLS_expose?: ((exposed: {}) => void) | undefined, __VLS_setup?: Promise<...>) => VNode<...> & { ...; }' has no properties in common with type 'Omit<ConcreteComponent<AreaChartProps<number[]> & VNodeProps & AllowedComponentProps & ComponentCustomProps>, "props">'.
我尝试用这个更改故事的签名,但问题仍然存在:
type ComponentType = typeof AreaChart;
type Story = StoryObj<ComponentType>;
const meta: Meta<ComponentType> = {
component: AreaChart,
};
export default meta;
我找到的唯一解决方法是简单地对元数据进行类型转换,但这样就失去了对 meta
对象的类型检查:
const meta = {
component: AreaChart,
};
export default meta as Meta<ComponentType>;
是否可以在故事中使用泛型组件?
重现问题
如果你下载项目并从vscode打开它,问题就会显现出来:
https://stackblitz.com/edit/github-sgrypj?file=src%2Fstories%2FButton.stories.tsx
系统信息
Environment Info:
System:
OS: macOS 13.5.2
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Binaries:
Node: 16.19.0 - ~/.nvm/versions/node/v16.19.0/bin/node
npm: 8.19.3 - ~/.nvm/versions/node/v16.19.0/bin/npm
Browsers:
Chrome: 117.0.5938.88
Edge: 114.0.1823.51
Safari: 16.6
npmPackages:
@storybook/addon-a11y: ~7.4.2 => 7.4.2
@storybook/addon-actions: ~7.4.2 => 7.4.2
@storybook/addon-backgrounds: ~7.4.2 => 7.4.2
@storybook/addon-docs: ~7.4.2 => 7.4.2
@storybook/addon-essentials: ~7.4.2 => 7.4.2
@storybook/addon-interactions: ~7.4.2 => 7.4.2
@storybook/addon-links: ~7.4.2 => 7.4.2
@storybook/addon-measure: ~7.4.2 => 7.4.2
@storybook/addon-outline: ~7.4.2 => 7.4.2
@storybook/addons: ~7.4.2 => 7.4.2
@storybook/api: ~7.4.2 => 7.4.2
@storybook/channel-postmessage: ~7.4.2 => 7.4.2
@storybook/channel-websocket: ~7.4.2 => 7.4.2
@storybook/client-api: ~7.4.2 => 7.4.2
@storybook/components: ~7.4.2 => 7.4.2
@storybook/core-events: ~7.4.2 => 7.4.2
@storybook/manager-api: ~7.4.2 => 7.4.2
@storybook/preview-web: ~7.4.2 => 7.4.2
@storybook/testing-library: ~0.2.1 => 0.2.1
@storybook/theming: ~7.4.2 => 7.4.2
@storybook/vue3: ~7.4.2 => 7.4.2
@storybook/vue3-vite: ~7.4.2 => 7.4.2
其他上下文
- 无响应*
8条答案
按热度按时间gjmwrych1#
我也遇到了使用泛型支持组件的问题,如果能得到一个解决这类情况的方案就太好了。
xv8emn3q2#
临时解决方案,我使用这种方法:
qyuhtwio3#
同样的问题,这个错误在普通组件中也会出现。
gudnpqoy4#
@kasperpeulen,请问这个问题出现的原因是什么?
n7taea2i5#
嘿,伙计们,我也遇到了同样的问题。有人找到可接受的解决方法了吗?
nr7wwzry6#
React也存在同样的问题!
使用这种类型
通过在第12行添加临时解决方法,但它的行为类似于
| string
...ht4b089n7#
如何临时解决方案,我使用这种方法
感谢,@Gumper-x。这对我有效。我能够调整它使其更严格(并删除
unknown
转换):mitkmikd8#
I am using the following.