字符串类型的参数 | null 不可分配给类型字符串错误的参数

argument of type string | null is not assignable to parameter of type string error

当我尝试获取本地存储记录时出现以下错误。

"Argument of type 'string | null' is not assignable to parameter of type 'string'.\n  Type 'null' is not assignable to type 'string'.",

这是代码

this.service.getAllPets(this.CatDog).subscribe(
  data => {
    this.pets = data;
    console.log(data);
    // tslint:disable-next-line:no-bitwise
    const newPet = JSON.parse(localStorage.getItem('newPet'));
    if (newPet){
      this.pets = [newPet, ...this.pets];
    }
    console.log(this.route.snapshot.url.toString());
  }, error => {
    console.log('httperror:');
    console.log(error);
  }
);

JSON.parse 接受字符串类型的参数

localStorage.getItem returns 字符串类型的参数或 null(如果未找到)

因此您可以在解析之前添加一个快速默认值集。 像这样:

const newPet = JSON.parse(localStorage.getItem('newPet') || "{}");

另一种选择是从本地存储中获取结果,检查它是否不为空然后解析它。