undefined; get exists(): boolean { return this.raw !== undefined; } decode(): Result

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了undefined; get exists(): boolean { return this.raw !== undefined; } decode(): Result相关的知识,希望对你有一定的参考价值。

假设我们有一个类似下面的类。

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.

这是基于 火库 DocumentSnapshot的API,其中你有 exists 财产和 data 方法。然而,为了确保 data() 不是 undefined 我们需要做这样的事情。

const data = result.data()
if (data) 
   // do something with data

以上是关于undefined; get exists(): boolean { return this.raw !== undefined; } decode(): Result的主要内容,如果未能解决你的问题,请参考以下文章