如何将字符串转换为角型接口类型?

时间:2019-04-17 13:55:05

标签: angular typescript

我在本地存储中有存储值,然后需要此本地存储值存储在接口类型变量中。但显示错误,因为无法输入接口类型。

export interface MainData {
  name:string;
  rollNumber:number;
}
localStorage.setItem('currentUser',JSON.stringify(user.ua));
s:MainData[];
this.s = localStorage.getItem('currentUser'); // showing error here


2 个答案:

答案 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'));