You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript遍历Object返回undefined,设timeObject为any类型仍无效如何解决?

错误原因
  • 外层函数未声明返回值:你写在map回调内的return仅作用于回调函数本身,不会作为timeToString的返回值,因此函数默认返回undefined,该问题和timeObject的类型定义无关。
  • 遍历方法选型错误:map的作用是遍历数组生成转换后的新数组,你需要的是查找匹配项,应该用find方法。
  • 目标返回值错误:你的函数名为timeToString,核心需求是将时间数值转为对应的文本描述,但原代码中匹配成功后返回的是数值timeObject[key],不符合预期逻辑,应该返回匹配到的键名。
修正后代码
const timeObject = {
  'On web close': 0,
  '10 seconds': 10000,
  '8 hours': 28800000,
  '12 hours': 43200000
}

const timeToString = (time: number) => {
  // 查找值匹配的键,添加类型断言解决TS类型报错
  const matchedKey = Object.keys(timeObject).find(key => timeObject[key as keyof typeof timeObject] === time)
  // 无匹配项时返回空字符串作为兜底
  return matchedKey ?? ''
}

console.log(timeToString(10000)) // 输出结果:10 seconds

小提示:原代码中10 secconds拼写错误,多写了一个c,可根据实际需求调整。


内容的提问来源于stack exchange,提问作者Petr Špác

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:09:02