我在本地存储中有存储值,然后需要此本地存储值存储在接口类型变量中。但显示错误,因为无法输入接口类型。
export interface MainData {
name:string;
rollNumber:number;
}
localStorage.setItem('currentUser',JSON.stringify(user.ua));
s:MainData[];
this.s = localStorage.getItem('currentUser'); // showing error here
答案 0 :(得分:0)
最简单的答案是:JSON.parse(localStorage.getItem('currentUser'))
如果您希望某些东西更可重用,则可以利用泛型来定义返回类型...
export function hydrateFromLocalStorage<T>(key: string): T {
try {
return JSON.parse(localStorage.getItem(key))
}
catch (error) {
return null;
}
}
// example
const currentUser = hydrateFromLocalStorage<YourInterface>('currentUser');
答案 1 :(得分:0)
您遇到类型缺少匹配类型错误, 之所以会出现此错误,是因为从本地存储中加载项目时,该项目是字符串类型,
要解决此问题,只需使用JSON.parse():
JSON.parse(localStorage.getItem('currentUser'));