我正在尝试更新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' });
2条答案
按热度按时间xmd2e60i1#
这是IDE bug,在WEB-61241上跟踪;请关注更新
作为解决方法,您可以尝试下载WebStorm 2023.2 EAP并在首选项中启用Volar支持|语言和框架|TypeScript| Vue
jhdbpxl92#
这是一个WebStorm问题,从今天开始,这个错误应该得到修复,因为他们实现并修复了一些volar问题。
我试过了,在我的情况下,它工作正常。