获取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 上面取值的错误。
00
相似问题