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:“缓冲区”类型的参数不可分配给“字符串”类型的参数

错误:TS2345:使用打字稿编译时

错误 TS2345:“菜单”类型的参数不可分配给类型参数

对象 args 中的键写为 [someKey] 时出现 TS2345 错误

常规快递代码上的打字稿错误 TS2345

如何修复 Typescript 编译错误 ts2345“类型 'Response' 丢失......来自'Response'类型:重定向、预告片、formData!”