feat(types): support inferring attrs #7444
Conversation
❌ Deploy Preview for vuejs-coverage failed.
|
b184ee3 to
12bf718
Compare
❌ Deploy Preview for vue-sfc-playground failed.
|
8635658 to
53ba854
Compare
|
@yyx990803 we need this in oku-ui, for example we need to go back the element types so that volar can suggest user auto-suggestion with both props and attrs types.
can you review and include this? |
|
Looks great. Could you please rebase your branch to resolve conflicts? I guess this feature will more be like |
53ba854 to
8a91c88
Compare
Size ReportBundles
Usages
|
df90c7c to
f220643
Compare
This reverts commit 20e2364.
74395ad to
6f9619b
Compare
@sxzz done |
|
This is much needed, thanks! |
|
@edison1105 Is this accidental? |
It will be reopen soon. |
@rudyxu1102 The scenario you mentioned seems to pertain to within the component, and it appears that there are also issues with how the parent component is using it. As follows: Assume that the ComText component is provided by another library, let's say: <template>
<div>{{ name }} - {{ age }}</div>
</template>
<script setup lang="ts">
defineOptions({
name: 'ComText',
})
const props = defineProps({
name: {
type: String,
default: '',
},
age: {
type: Number,
default: 0,
}
})
</script>
Wrap our component based on ComText. <template>
<ComText :name="name" v-bind="$attrs" />
</template>
<script setup lang="ts">
import ComText from './ComText.vue';
const props = defineProps<{
name: string;
}>();
</script>Actual usage import { defineComponent } from 'vue'
import { ComWrap } from './ComWrap'
const BusinessCard = defineComponent({
name: 'BusinessCard',
setup(props) {
return () => {
return <ComWrap name={props.name} age={10} />
}
}
})The age property here will have a type error. Is there a way to resolve this type issue now? |
Related
RFC
Specific scenes
1. Wrapping an html element
2. Wrapping a Vue component