在Vue 3 withDefaults更新后抛出TypeScript错误

sycxhyv7  于 2023-06-24  发布在  Vue.js
关注(0)|答案(2)|浏览(503)

我正在尝试更新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' });
xmd2e60i

xmd2e60i1#

这是IDE bug,在WEB-61241上跟踪;请关注更新
作为解决方法,您可以尝试下载WebStorm 2023.2 EAP并在首选项中启用Volar支持|语言和框架|TypeScript| Vue

jhdbpxl9

jhdbpxl92#

这是一个WebStorm问题,从今天开始,这个错误应该得到修复,因为他们实现并修复了一些volar问题。
我试过了,在我的情况下,它工作正常。

相关问题