本文介绍了对TypeScript使用localStorage.getItem()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下一行代码:
const allGarments = teeMeasuresAverages || JSON.parse(localStorage.getItem("teeMeasuresAverages")) || teeMeasuresAveragesLocal;
TypeScript引发此警告:
Argument of type 'string | null' is not assignable to parameter of type 'string'.
Type 'null' is not assignable to type 'string'.
所以我尝试包括非空断言运算符(!):
const allGarments = teeMeasuresAverages || JSON.parse(localStorage.getItem("teeMeasuresAverages")) || teeMeasuresAveragesLocal;
这会给我一个不同的警告:
Forbidden non-null assertion.
我是打字新手。它在这里寻找什么?
推荐答案
JSON.parse
依赖项的类型必须是string
。
但是local storage
返回类型是string|null
,因此它可以同时是string
和null
,并且当您声明数据时,它的值为NULL,直到您呈现组件(或调用函数),然后调用getItem
函数,它获得值,然后它就是string
。
您可以使用||
操作并向其添加字符串,使其不再为空。
JSON.parse(localStorage.getItem("teeMeasuresAverages") || "")
您还可以添加// @ts-ignore
以防止tyescript检查下一行的类型,但不建议
// @ts-ignore
JSON.parse(localStorage.getItem("teeMeasuresAverages"))//just the usual way
这篇关于对TypeScript使用localStorage.getItem()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!