【发布时间】:2021-06-17 04:21:31
【问题描述】:
在我的项目中,我使用 Angular LocalStorage 来存储文件名类型的记录的值。我在back 方法中遇到错误
错误
Type 'string | null' is not assignable to type 'FileName | undefined'.
Type 'null' is not assignable to type 'FileName | undefined'.
我需要帮助来解决这个错误,下面是我的代码
代码
export interface FileName {
fname: number;
sname: number;
Tange: number;
quick: string;
Mark: string;
mine: number;
}
currentName: FileName | undefined = undefined;
previousName: FileName | undefined = undefined;
data(rec: FileName, Mark: HTMLTableDataCellElement) {
const { fname, sname, Tange, record_id, mine } = rec;
const quick = Mark.innerText;
this.name.replaceAndNew({sname, Tange, record_id, quick, mine, fname}).subscribe(data => {
this.process(data);
})
localStorage.setItem('FileName', JSON.stringify(rec));
}
back(){
localStorage.getItem('FileName');
this.currentName = localStorage.getItem('FileName'); -----------------> Error
}
【问题讨论】:
-
很简单,您的属性
this.currentName是一种名为FileName 的interface,但您正在检索localStorage.getItem('FileName');,它将返回一个类型DOMString ,要解决您的问题,您必须将代码解析为像这样的对象JSON.parse(localStorage.getItem('FileName')然后将currentName: Filename更改为currentName: any -
不要将类型更改为任何类型,这是个坏建议。改用类型转换。这样,只有 localStorage 提取可能会中断,而访问 currentName 的整个程序的其余部分仍然是类型安全的。
标签: javascript angular typescript null local-storage