构建:'string | 类型的参数1' 不可分配给“字符串”类型的参数
Posted
技术标签:
【中文标题】构建:\'string | 类型的参数1\' 不可分配给“字符串”类型的参数【英文标题】:Build:Argument of type 'string | 1' is not assignable to parameter of type 'string'构建:'string | 类型的参数1' 不可分配给“字符串”类型的参数 【发布时间】: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"
怎么办?
【参考方案1】:
parseInt
需要字符串参数
您的代码通过storage.getItem('categoryColumnWide')
(字符串)或1
(数字)
尝试将1
作为字符串传递
this.categoryColumnWide = parseInt(storage.getItem('categoryColumnWide') || '1');
【讨论】:
以上是关于构建:'string | 类型的参数1' 不可分配给“字符串”类型的参数的主要内容,如果未能解决你的问题,请参考以下文章
“字符串”类型的参数不可分配给“$string”类型的参数 | `$string.$string` | `$string.$number`'
JWT:'string | 类型的参数undefined' 不可分配给'Secret' 类型的参数
节点 js + 反对 js + Postgresql。 ' token: string ' 类型的参数不可分配给 'PartialUpdate<User>' 类型的参数
打字稿:“RegExpMatchArray”类型的参数不可分配给“字符串”类型的参数
NestJS Postgres Prisma - 错误类型'字符串'不可分配给参数类型'TemplateStringsArray | Sql'