【发布时间】:2020-04-29 20:01:34
【问题描述】:
假设我们有一个如下所示的类:
class RawResult {
private raw: string | undefined;
get exists(): boolean {
return this.raw !== undefined;
}
decode(): Result | undefined {
if (this.raw === undefined) {
return undefined;
}
return someExpensiveDecoding(this.raw);
}
}
有没有办法告诉 TS 编译器 result.exists 暗示 result.decode() 不会是 undefined。
这是基于Firestore DocumentSnapshot's API,其中有exists 属性和data 方法。但是,为了确保data() 不是undefined,我们需要执行以下操作:
const data = result.data()
if (data) {
// do something with data
}
【问题讨论】:
标签: typescript google-cloud-firestore