在使用类似
JSON.parse(localStorage.getItem(xxxx))
的使用会报错,如图:
原因:JSON.parse的第一个参数必须是string类型
但是localStorage.getItem的返回值可以是string或者null
解决办法:
-
使用typeof判断localStorage.getItem返回的类型是不是string
let LOGIN_DATA; let _LOGIN_DATA_KEY = localStorage.getItem(xxxx); if (typeof _LOGIN_DATA_KEY === "string") { LOGIN_DATA = JSON.parse(_LOGIN_DATA_KEY); } -
在JSON.parse里面加个兼容
JSON.parse(localStorage.getItem(xxxx) || '{}'); -
加类型断言(不推荐):如果localStorage.getItem(xxxx)确实是一个null的话,运行时就会报错
const LOGIN_DATA = JSON.parse( localStorage.getItem(xxxx) as string );