-
-
Notifications
You must be signed in to change notification settings - Fork 8.4k
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
Types inferring works incorrectly in v-for with destruction #9059
Comments
I opened a typescript issue microsoft/TypeScript#55664, expecting resolved. Temporarily your could use |
@wusiquan but in your example type infers correctly even with destructuring |
The upper one, the test 1 code, was used to show that an array is not nested, its type is inferred right by typescript, but when it came to the test code 4 or code 5, its type is not expected. |
The issue can no longer be reproduced using the latest version of Vue. |
Vue version
3.3.4
Link to minimal reproduction
https://play.vuejs.org/#eNqNU8FymzAQ/RUNl7QzNhzSEwOZtJ10Jj20nSa3kAOGta0UJI20Iu5Q/r0rCRPsOJ7ABe3b3ff2reijz0rFnYUojTJTaa6QGUCrWFOKTV5EaIroqhDuxb8K2DfNDd4itCxnfSEYPS6esos11wYvQqgrG0sxYdsV6IfHQgxsrL+DSor6ZAPjocMOBjUXm4MO91uuTzdAhxzWr6RsoBT7BoUgCoMBNek0zMMj+zeT5o8TD51y5jpkSXDI+5ERopoSgU6MZTXvWLdcS02efeidoEVgGT4yLkZCb6VTN6bztXPYDZXn+eRgdMX6PlSwYWBZQsmB5OVrThcyz5N4KD5HFZ8hzJJp2GgR8VZJjcu2VPGTkYJujl9DMQIkIN0vhogtuHMRbRGVSZOkqgWV1dDwTscCMBGqTa4pLdFWIG9hWcv2+jK+jD8Ru8F5OAbTLldaPhvQ1KSIFjOahIId6KUGUYMG/V7ao7I59RH0it6xD3SzyBQ0dHnWfHNkSSVbxRvQPxVyunkH1pRNI5+/+xhqC9Ms1RaqPyfiT2YXZvqlwSubzY+l3gAG+ObuB+zoewJbWdtmXMMb4G8wsrFOY0j7YkVNsmd5Xu2t3zD9kffmZocgzH4oJ9S74fP9Pr6eGf1FLrk9uTj8B3F7hx4=
Steps to reproduce
All of them have equal set of fields.
Fields have different types
type FristItem = { type: 'first' value: number[] } type SecondItem = { type: 'second' value: string[] } type ThirdItem = { type: 'third' value: boolean[] }
const values:FristItem[] | SecondItem[] | ThirdItem[] = []
What is expected?
It is expected v-for to work the same way as destructing in loops in TS
What is actually happening?
Use it in
v-for
with destruction`
Use it in
v-for
without destruction`
System Info
Any additional comments?
How it works in vue
The sane code with pure TS
The text was updated successfully, but these errors were encountered: