typescript - 无法将任何类型分配给 localStorage
问题描述
const getAccessToken = () => {
if (localStorage.getItem('tokens')) {
const token = JSON.parse(localStorage.getItem('tokens'))['accessToken'];
return token
} else {
return null;
}
}
我在 localStorage.getItem('tokens') 部分收到错误。
错误:
Argument of type 'string | null' is not assignable to parameter of type 'string'.
Type 'null' is not assignable to type 'string'.
我尝试声明类型:任何但问题仍然没有解决
解决方案
尝试将表达式移动localStorage.getItem('tokens')
到变量:
const getAccessToken = () => {
let tokens = localStorage.getItem('tokens')
if (tokens) {
const token = JSON.parse(tokens)['accessToken'];
return token
} else {
return null;
}
}
这里的问题是,当您使用表达式时,编译器无法将其与if
已经发生的检查相关联,因此无法为其提供正确的类型,即string
. 相反,它仍然被考虑string | null
。
推荐阅读
- python - 双线性插值负颜色值
- java - Java Spring Security 登录第一次成功,第二次尝试失败
- entity-framework - 在 2 次迁移之间强制进行种子数据迁移
- java - 如何验证 DB 远程服务器是否仅使用 java 原始套接字运行 [Telnet]
- django - 我可以在 Firebase 上部署 Django Rest Framework 项目吗?
- thunderbird - 有没有办法在 Windows 10 中打开邮件客户端(如雷鸟)并使用命令行附加文件?
- javascript - 如何调用用 Node.js 编写的 index.js 中的函数
- ruby-on-rails - 使用 fetch 在 rails 中传递变量
- generics - 为什么我不能用 let _: Arc 创建一个 trait 对象
= value.into()? - python - 无效的菜单目录'Accessories/pcmanfm.desktop