关于 post.image.fitUrl 和 markdown-it 报错的问题
来源:9-9 作业 完成文章详情页

慕粉孔帅
2022-02-21
老师你好,现在的项目已经实现需求了,不过依然报了两个问题。记得你以前和我说过,有的问题可能本身是因为Vetur 不支持导致的,你看一下这两个问题是不是?
这里面尤其是第二个问题,我问过你,所以插件我都安装了,不知道为啥还是报错了
写回答
1回答
-
张轩
2022-02-22
同学你好
第一个问题 非常典型的ts 帮助我们的情景,它的报错也非常说明问题,去仔细看信息就发现,image 现在可能是 ImageProps 或者 string 联合类型,而我们在代码中直接取了它的 fitUrl 属性,如果这个时候 image 是 string,那么自然整个程序就会抛出错误而中止,所以 ts 帮我们敏锐的发现了问题。
这里解决方式就是使用说过多次的,type guard,将范围缩小。所以我们可以这样改
<div v-if="post.image && typeof post.image !== 'string'" class="col-4"> <img :src="post.image.fitUrl" :alt="post.title" class="rounded-lg w-100"> </div>
在前面加在一个 if 的条件,将 string 排除在外,这样代码就安全了,提示也就消失了。
第二个问题 假如安装过还是有问题,最简单的方式就是重装大法,因为有可能安装别的包的时候,互相发生了冲突。
// 将 node_modules 文件夹删除 // 然后 npm install 重新安装一下即可
012022-02-23
相似问题