flowtype - 不能用 `JSON.parse` 调用 `localStorage.getItem(...)`

标签 flowtype

刚刚将流类型添加到我正在处理的项目中并逐步添加类型,直到出现此错误:

Cannot call JSON.parse with localStorage.getItem(...) bound to text because null or undefined [1] is incompatible with string [2]



这来自一个表达式:
const myVar = JSON.parse(localStorage.getItem('itemName'))

我明白为什么会出现此错误(可能除了 “绑定(bind)到文本” 部分),但找不到解决方法。我会很感激这里的任何帮助!

最佳答案

所以,函数 localStorage.getItem可以返回null values 和 flow 希望你在解析之前处理它们。如JSON.parse只需要一个字符串,您可以执行以下操作:
localStorage.getItem("key") || '{}'
所以,如果它返回null。选择空对象字符串,JSON.parse可以解析成一个空对象。

关于flowtype - 不能用 `JSON.parse` 调用 `localStorage.getItem(...)`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52718844/

相关文章:

atom-editor - 核素流未在 Atom 中显示错误

javascript - 如何在普通js中使用.js.flow风格的flowtype

flowtype - 如何让 Flow 理解使用 lodash 进行运行时类型检查的动态代码?

javascript - 解构 Flow 对象类型?

javascript - 使用Flow时如何向Error对象添加调试信息?

javascript - meteor +流型

javascript - 在 for..in 循环中,为什​​么 Flow 在访问可能无效的属性时不会抛出异常?

javascript - FlowType 能否验证一个属性是否是像 HtmlDiv 这样的 DOM 对象?

flowtype - 导入 CSS 文件时出现流 “Required module not found”

javascript - 函数类型的可选参数