更新 Vue 3 withDefaults 后抛出 TypeScript 错误

Spe*_*ord 6 javascript webstorm typescript vue.js vuejs3

我正在尝试更新 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>
Run Code Online (Sandbox Code Playgroud)

错误信息是:

参数类型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' });
Run Code Online (Sandbox Code Playgroud)

len*_*ena 6

这是 IDE 错误,跟踪位置为WEB-61241;请关注更新

作为解决方法,您可以尝试下载WebStorm 2023.2 EAP并在“首选项 | ”中启用 Volar 支持。语言和框架 | 打字稿 | 维埃