我正在尝试更新Vue 3的版本(3.2.x
-> 3.3.x
)。
但是由于某种原因,当使用withDefaults
时出现错误:
<script setup lang="ts">
interface Props {
readonly title: string;
}
// THIS WORKS
const props = defineProps<Props>();
// THIS DOESN'T WORK (guess because of withDefaults)
const props = withDefaults(defineProps<Props>(), { title: '' });
...
</script>
错误信息为:
参数类型
DefineProps<Props, BooleanKey<Props>>
无法分配给参数类型DefineProps<Readonly<Props> & {}, keyof Readonly<Props> & {}>
我猜我正按照文档中描述的方式进行操作,问题出在哪里?
更新:看起来这个问题只发生在非布尔字段上:
// THIS WORKS
withDefaults(defineProps<{readonly foo: boolean}>(), { foo: true });
// THIS DOESN'T WORK
withDefaults(defineProps<{readonly foo: string}>(), { foo: 'foo' });