【发布时间】:2017-08-30 22:43:42
【问题描述】:
我有这个打字稿代码:
categoryColumnWide: number = 0;
this.categoryColumnWide = parseInt(storage.getItem('categoryColumnWide') || 1);
给我以下错误:
严重性代码描述项目文件行抑制状态 错误构建:'string | 类型的参数1' 不可分配给 “字符串”类型的参数。
有人可以帮我解决这个问题吗?我刚刚升级到新版本的 Typescript,这条消息现在出现在多个地方。当我将鼠标悬停在 categoryColumnWide 上时,它说它是一个“数字”
仅供参考据我所知,我使用的是 Typescript 2.1
【问题讨论】:
-
如果
storage.getItem('categoryColumnWide')返回一个假值,那么1将被选择并作为参数传递给parseInt,并且由于parseInt期望string,它表示您不能分配一个数字转字符串! -
改成
parseInt(storage.getItem(...) || "1")或Number((storage.getItem(...) || 1))就可以解决问题了! -
或者您可以在开始使用之前检查该项目是否在存储中,例如:
if(storage.getItem('categoryColumnWide')) { storage.setItem('categoryColumnWide', '1'); }! -
或只是
parseInt(storage.getItem('categoryColumnWide')) || 1 -
@AlekseyL。如果
storage.getItem('categoryColumnWide')返回"0"怎么办?
标签: javascript typescript