Vue 3 中 v-model 在自定义组件上的类型推导与边界处理
在 Vue 3 的组合式 API 项目里,给自定义表单组件接 v-model 是很常见的操作。表面上看,父组件写 v-model="form.name",子组件声明 defineProps<{ modelValue: string }>() 和 defineEmits<{ 'update:modelValue': [value: string] }>(),就能完成双向绑定。但实际开发中,当父组件的绑定值类型是 string | number、boolean 或者带有 null 的联合类型时,TypeScript 会在模板编译阶段报错,或者运行时出现值被意外覆盖。另一个高频场景是多个 v-mod...