Angular 5 错误 TS2345:“数字”类型的参数不可分配给“字符串”类型的参数
Posted
技术标签:
【中文标题】Angular 5 错误 TS2345:“数字”类型的参数不可分配给“字符串”类型的参数【英文标题】:Angular 5 error TS2345: Argument of type 'number' is not assignable to parameter of type 'string' 【发布时间】:2018-07-28 01:47:26 【问题描述】:我需要如下设置一个cookie:
start: number;
...
this.start = Math.floor(Date.now()/1000);
...
if(!this._cookieService.check('confirmTimeoutStarted'))
this._cookieService.set('confirmTimeoutStarted', this.start);
但我明白了:
error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'.
我应该定义 cookie 变量类型还是什么?
【问题讨论】:
【参考方案1】:Cookie 以字符串格式存储。看起来this._cookieService.set
方法的签名接受字符串,所以你可以这样做:
this._cookieService.set('confirmTimeoutStarted', String(this.start));
【讨论】:
但我需要this.start
是一个数字,以便我可以计算超时!
属性本身在你的应用程序的其余部分仍然是一个数字。 String() 不会改变它,它只会将它转换为这个特定方法的字符串。以上是关于Angular 5 错误 TS2345:“数字”类型的参数不可分配给“字符串”类型的参数的主要内容,如果未能解决你的问题,请参考以下文章
打字稿错误 TS2345 错误:TS2345:“缓冲区”类型的参数不可分配给“字符串”类型的参数
对象 args 中的键写为 [someKey] 时出现 TS2345 错误
如何修复 Typescript 编译错误 ts2345“类型 'Response' 丢失......来自'Response'类型:重定向、预告片、formData!”