-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ComboboxOptions
render prop option
has unknown type
#3326
Comments
ComboboxOptions
render prop options
has unknown typeComboboxOptions
render prop option
has unknown type
Hey! So this is a known limitation of TypeScript in how it interprets JSX. Children in JSX/TSX can't be "typesafe" and as a result are not able to infer their types, props, etc… based on the parent component. Matt Pocock has an article about this topic that details some of the problems. But the gist is that we'd need to find a way to design the types such that the "children" of Combobox are only of a certain type — this would then allow us to infer the props type. Sadly this is just not possible today. This is why the type in the render prop is typed as <HeadlessComboboxOptions>
{({ option } : { option: MyOptionType }) => (
<HeadlessComboboxOption>…</HeadlessComboboxOption>
)}
</HeadlessComboboxOptions> Hope that helps 👍 |
@thecrypticace I actually tried to type it myself but I get this: typescript version 5.4.5 |
If the type was |
I swear worked at one point but yeah aliasing to a different type does not in function argument position. Will get a fixed merged in for that. |
I think we're aiming to tag a release today — but if not then tomorrow. 👍 In the meantime you can use our insiders build once it's updated (may take a few minutes):
|
What package within Headless UI are you using?
For example: @headlessui/react
What version of that package are you using?
For example: v2.1.0
Describe your issue
When using the render prop of
ComboboxOptions
for a virtualized list, theoption
property has unknown type.The text was updated successfully, but these errors were encountered: