Skip to content

fix(DropdownMenu): Support enabling 'exactOptionalPropertyTypes' #7598

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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

eranhirsch
Copy link

@eranhirsch eranhirsch commented Jun 12, 2025

When exactOptionalPropertyTypes is enabled for the project, we get the error:

Type '{ children: (ReactNode | Element)[]; slot?: string | undefined; style?: CSSProperties | undefined; title?: string | undefined; dir?: string | undefined; ... 280 more ...; checked: CheckedState | undefined; }' is not assignable to type 'DropdownMenuCheckboxItemProps' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.
  Types of property 'checked' are incompatible.
    Type 'CheckedState | undefined' is not assignable to type 'CheckedState'.
      Type 'undefined' is not assignable to type 'CheckedState'.ts(2375)

This happens because when exactOptionalPropertyTypes is enabled, we can't assign undefined to an optional prop.

I think this destructuring is redundant because the remaining props rest param would contain it and it would be typed accurately as an optional prop.

Copy link

vercel bot commented Jun 12, 2025

@eranhirsch is attempting to deploy a commit to the shadcn-pro Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant