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的主要内容,如果未能解决你的问题,请参考以下文章

file_get_contents 加上 file_exists (在被调用的文件内)

chrome中 GET /undefined 404

如果 file_exists() 不工作

Vue 2 和 Vue-Resource [无法读取 undefined(...) 的属性 'get']

axios报错:Cannot read property '$get' of undefined

解析云代码 request.object.get(key) 总是返回 undefined