Skip to content
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

Enforcing props destructuring #2688

Open
Ericlm opened this issue Feb 18, 2025 · 3 comments · May be fixed by #2736
Open

Enforcing props destructuring #2688

Ericlm opened this issue Feb 18, 2025 · 3 comments · May be fixed by #2736

Comments

@Ericlm
Copy link
Contributor

Ericlm commented Feb 18, 2025

Please describe what the rule should do:
The role of this rule would be to suggest props destructuring. It could also warns on its usage if necessary.

What category should the rule belong to?

[X] Enforces code style (layout)
[ ] Warns about a potential error (problem)
[ ] Suggests an alternate way of doing something (suggestion)
[ ] Other (please specify:)

Provide 2-3 code examples that this rule should warn about:

// vue/prefer-props-destructuring

const props = defineProps<>({...}) // 🚨

const {...} = defineProps<>({...}) // 👍

Additional context

@markbrockhoff
Copy link

I agree that a rule to enforce a default style for declaring props (especially with defaults) should be provided. At the moment there are two ways for defining default values on props:

const { foo = "bar" } = defineProps<{ foo?: string }>(); // Destructuring with default assignment

const props = withDefaults(defineProps<{ foo?: string }>(), { foo: "bar" }); // Wrapping defineProps with withDefaults

I'd suggest creating a configurable rule allowing the project to decide which style to use for concistency. So either destructuring should be prefered or the opposite, where props should not be destructured and withDefaults be used.

@mrleblanc101
Copy link

mrleblanc101 commented Apr 14, 2025

Since reactive props destructuring has been added in Vue 3.5, I think a rule for this is important for code consistency !
I see that @waynzh has worked pushed some commit about props destructuring on main

@waynzh
Copy link
Member

waynzh commented Apr 14, 2025

This is certainly a useful rule. It's pretty straightforward, given that a function already exists to identify usage of prop destructuring.

@waynzh waynzh linked a pull request Apr 14, 2025 that will close this issue
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 a pull request may close this issue.

4 participants