【问题标题】:Typescript object possibly null even when properly checked即使正确检查,Typescript 对象也可能为 null
【发布时间】:2020-01-09 19:42:19
【问题描述】:

我在我的项目中使用打字稿并尝试将对象内的值与另一个值进行比较,但我似乎无法通过打字稿的“对象可能为空”错误:

我试过重启 TS 服务器,但是好像不行。

【问题讨论】:

  • 看起来问题出在 popperRef 类型中。它是如何在您的代码中定义的。通常你应该这样做 const bodyRef = React.useRef(null);
  • 是的,这就是我所拥有的,这就是我拥有的声明
  • 这是你的全部代码吗?如果您在 if 语句和用法之间使用类型保护,这通常会发生,for example
  • 看起来需要所有功能才能说明发生了什么。看起来问题出在 popperRef 定义中,但我应该看到它

标签: typescript


【解决方案1】:

你还应该检查popperRef是否有一个属性current,它本身应该有一个属性popper

if( popperRef ) {
  if( popperRef.hasOwnProperty('current') ) {
    if( popperRef.current.hasOwnProperty('popper') ) {
      if( popperRef.current.popper !== event.target ) {
        // ...
      }
    }
  }
}

【讨论】:

  • 恐怕不是这样的。仍然收到同样的投诉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
  • 1970-01-01
  • 2020-02-08
  • 1970-01-01
  • 2019-11-16
相关资源
最近更新 更多