【问题标题】:Argument of type 'number' is not assignable to parameter of type 'string' giving error“数字”类型的参数不能分配给“字符串”类型的参数,给出错误
【发布时间】:2020-09-18 21:00:47
【问题描述】:

这是我的代码

const currentTimeStamp = `${(parseInt(Date.now() / 1000))}`;
const [roomName, setRoomName] = useState<string>(currentTimeStamp || '');

它会在生产中引发错误:

“数字”类型的参数不能分配给“字符串”类型的参数。 TS2345

【问题讨论】:

  • 嗨,阿西夫。 currentTimeStamp.toString() 呢?
  • 请显示useState的代码

标签: reactjs typescript


【解决方案1】:

您可以删除parseInt(),因为Date.now() 已经返回了一个数字,而且Date.now() / 1000
parseInt() 正在抱怨,因为它应该被赋予一个字符串而不是一个数字。

你可以这样做:

const currentTimeStamp = `${(Date.now() / 1000)}`;

【讨论】:

  • 这是正确的。不知道为什么反对票 - parseInt 的签名是 function parseInt(s: string, radix?: number | undefined): number。即使在普通 JS 中,使用带有数字的 parseInt 也是一种非常糟糕的做法。
猜你喜欢
  • 2021-12-20
  • 2020-04-12
  • 1970-01-01
  • 2021-10-21
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 2021-09-03
相关资源
最近更新 更多