为什么localStorage.getItem始终返回字符串?

6
我觉得很奇怪。在lib.dom.d.ts中,localstorage.getItem的类型返回值是'string | null',但是在我的应用程序中使用它时,它总是返回字符串(string)。为什么呢?

3
只有当你查询未设置的键时,它才会返回 null。你尝试过获取这样的键吗?例如,你可以尝试使用 localStorage.getItem(Math.random())。请注意,此函数将返回一个随机生成的字符串作为键名。 - Kaiido
2个回答

10

2
如果你的目标项不存在,那么 getItem() 方法会返回 null。因此,TypeScript 的注释定义了一个 stringnull 的联合类型。 - nalply

3
如果您在 localStorage 中使用 json 对象,可以使用 JSON.stringify()JSON.parse() 方法。
要将对象存储在 localStorage 中,
localStorage.setItem('token', JSON.stringify(user)); 

从localStorage获取对象的方法如下,
user = JSON.parse(localStorage.getItem('user'));

在这里,您将获得对象而不是字符串。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接