对象可能为“ null”-TypeScript linter错误

时间:2019-07-06 14:32:24

标签: javascript reactjs typescript jsx tslint

我对TypeScript有疑问!我们正在整个项目中进行JSX到TypeScript的转换。

  {instances.map(instance => {
    const { id, name, type } = second;

    const pageUrl = makePath(
      routes.page.path,
      { firstId: first.id , secondId: id }, <<<<<<
    );

在带有“ <<<<<<<”的行上,突出显示“ first.id”的“ first”,并出现以下错误:

Object is possibly 'null'.

我不确定如何将其定义为不会被视为null的地方。我可以通过解构找出第二个,但是不能两次定义“ id”。任何指导将不胜感激!

2 个答案:

答案 0 :(得分:0)

如果我在组件的早期定义

似乎可以正常工作
  const firstId = (first ? first.id : '');

,并将firstId: first.id替换为firstId: firstId

如果这不是推荐的解决方案,请告诉我!但是,它确实解决了我所看到的错误,并且似乎根本没有影响功能。

答案 1 :(得分:0)

类型检查器无法确定first是否会成为非null。 您可以在有问题的对象之后直接添加non-null assertion operator !,以告诉短绒棉绒它不会为空,请尝试以下操作:

{ firstId: first!.id , secondId: id }, <<<<<<