关于 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
重新安装一下即可


0
1
慕粉孔帅
问题解决了,第二个问题的解决让我想到了读书的时候去网吧上网,每当机子有问题喊网管来修的时候,网管都会喊一句:你重启一下试试,哈哈哈...
2022-02-23
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3166 学习 · 2346 问题

查看课程