获取store中数据为何要判断

来源:14-1 课程总结

爱问问题的小菜鸡

2022-02-14

图片描述
图片描述
如图,已经从store中获取了userStore和currentPost数据,为什么下面的代码还要用&&运算符防止userStore.value或currentPost.value为空,难道是从store中获取数据也存在异步操作导致执行到后面代码的时候数据还没获取到?

写回答

1回答

张轩

2022-02-15

同学你好 这两段代码都是 typescript 的 type guard 在起作用,如果你去看我们的定义,就会发现

export interface UserProps {
    isLogin: boolean;
    nickName?: string;
    _id?: string;
    column?: string;
    email?: string;
    // 我是可选的
    avatar?: ImageProps;
    description?: string;
}
export interface PostProps {
    _id?: string;
    title: string;
    excerpt?: string;
    content?: string;
    image?: ImageProps | string;
    createdAt?: string;
    column: string;
    // 我是可选的~
    author?: string | UserProps;
    isHTML?: boolean;
}

所以,我们必须用 if 判断它存在以后再进行下一步的操作,在 if 内,avatar 和 author 就变成了必选的,这样 ts 也帮我们规避有可能出现的在 undefined 上面取值的错误。

0
0

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

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

3142 学习 · 2313 问题

查看课程