当我尝试获取本地存储记录时出现以下错误。
"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);
}
);
答案 0 :(得分:3)
JSON.parse
接受字符串类型的 arg
localStorage.getItem
返回字符串或 null 类型的参数(如果未找到)
因此您可以在解析之前添加一个快速的默认值集。 像这样:
const newPet = JSON.parse(localStorage.getItem('newPet') || "{}");
另一种选择是从本地存储中获取结果,检查它是否为空,然后解析它。