首页 > 解决方案 > React 和 TypeScript,Object 可能是“null”。TS2531

问题描述

在 React with TypeScript 中,我在构建时遇到此错误:

对象可能为“空”。TS2531

在此处输入图像描述

但我有这个代码:

if (usersNode && usersNode.getLinkedRecords('edges') != null)
usersNode.getLinkedRecords('edges').forEach((edge: any) => {
  const node = edge.getLinkedRecord('node')

  nodesMapping[node.getValue('usuarioId')] = node.getDataID()
})

为什么?我明确地说,如果该对象不为空......

标签: reactjstypescript

解决方案


我想问题是

usersNode.getLinkedRecords('edges')

是一个函数调用。Typescript 无法“知道”它会在您第二次调用它时返回相同的内容。

尝试

const edges = usersNode && usersNode.getLinkedRecords('edges');
if (edges !== null)
    edges.forEach((edge: any) => {
        const node = edge.getLinkedRecord('node')
        nodesMapping[node.getValue('usuarioId')] = node.getDataID()
    })

推荐阅读