学习Vue3+TS项目过程中才过的坑(三)

58 阅读1分钟

关于defineProps的使用

基本使用方法:官网🔗

问题一

image.png 在使用withDefaults添加默认值时,出现对象类型的类型推导问题。 处理方式是和在propoption中一样,给Object类型添加默认值时需要用函数包裹:

image.png

问题二

image.png 在props文件中定义了itemProps并导入使用,出现以下报错:

image.png 阅读了官方文档之后,发现defineProps的范型参数只能是同一个文件内的接口或对象类型字面量

问题三

发现问题后,我把itemProps的定义放到了同一个文件内,但还是出现了同一个报错。于是我将工具类型Partial去掉了,发现可以正常使用。
经过一番寻找,在git里找到一个issue,里面有一些类似的问题,应该是涉及到复杂类型defineProps就会编译错误。

一个可以解决其他文件导入问题的Vite插件

链接在此🔗
但是本人测试没有成功,然后在issue里找到了其他人发布的支持vite4版本的插件,也没有成功。 暂时放弃,还是用传统的运行时声明方法定义props