Reactjs 类型脚本错误TS2322:类型“选项”不可分配给类型“(字符串和选项)|(数字和选项)|(只读字符串[]和选项)”
我试图从@headlessui/react加载一个简单的列表框组件 Select.tsxReactjs 类型脚本错误TS2322:类型“选项”不可分配给类型“(字符串和选项)|(数字和选项)|(只读字符串[]和选项)”,reactjs,typescript,Reactjs,Typescript,我试图从@headlessui/react加载一个简单的列表框组件 Select.tsx 我应该如何解决这个问题?这个错误在库中 现在的解决方案是使用@dev版本,比如npm安装@headlessui/react@dev 希望它能很快得到修复和发布,这样我们就不需要使用@dev标志。FWIW,我刚刚创建了一个新的React项目npx create React app projectname-template typescript,添加了@headlessui/React,并将逐字复制粘贴到app
我应该如何解决这个问题?这个错误在库中 现在的解决方案是使用@dev版本,比如npm安装@headlessui/react@dev
希望它能很快得到修复和发布,这样我们就不需要使用@dev标志。FWIW,我刚刚创建了一个新的React项目npx create React app projectname-template typescript,添加了@headlessui/React,并将逐字复制粘贴到app.tsx中。我得到的错误与你得到的完全相同。库的类型信息中似乎有问题。您可能想提出.@T.J.Crowder很酷,谢谢…我已经打开了它,但我认为这是因为我在Chrome扩展中使用了它,但现在我更新了标题。您最初提出的问题与此完全不同。我建议你提出一个关于这个问题的新问题,并从已结束的问题中删除这些评论。请共享可复制的最小值example@T.J.Crowder原来我最初提出的问题是关于其他图书馆的,所以我在评论中提到了这个问题。现在如果他们关上这个,我就打开另一个。
type Option = {
id: number
name: string
}
interface IProps {
label?: string
options: Array<Option>
}
export const Select = ({ label, options }: IProps) => {
const [selectedOption, setSelectedOption] = React.useState<Option>(options[0])
return (
<Listbox value={selectedOption} onChange={setSelectedOption}>
<Listbox.Label>{label}: </Listbox.Label>
<Listbox.Button>{selectedOption.name}</Listbox.Button>
<Listbox.Options>
{options.map((option) => (
<Listbox.Option key={option.id} value={option}>
{option.name}
</Listbox.Option>
))}
</Listbox.Options>
</Listbox>
)
}
const shapes = [
{
id: 1,
name: 'Circle',
},
{
id: 2,
name: 'Square',
},
]
<Select label="Shape" options={shapes} />