【问题标题】:Element implicitly has an 'any' type because expression of type元素隐式具有“任何”类型,因为类型的表达式
【发布时间】:2021-08-16 08:51:31
【问题描述】:

我不知道我该如何解决这个问题......

// sessionTime: ["2021-05-27 00:00:00", "2021-05-28 00:00:00"]
const { sessionTime, routingTime, ...params } = parseQueryString(history.location.search)

if (sessionTime != null) {
  const sessionStartTime = sessionTime[0];     // <= type error occur this point
  ...
}

[错误] TS7053:元素隐式具有“任何”类型,因为类型“0”的表达式不能用于索引类型“字符串 |号码 |布尔值 | (string | number | boolean)[]'.

我该如何解决这个错误...

【问题讨论】:

    标签: typescript


    【解决方案1】:

    这个错误说sessionTime的类型是:

    string | number | boolean | (string | number | boolean)[]
    

    这意味着它可能有很多东西。它可能是您所期望的数组,也可能只是 string | number | boolean

    因此,在将其视为一个数组之前,您需要确保它是一个数组。你可以通过测试来做到这一点:

    if (Array.isArray(sessionTime)) {
      // sessionTime is an array here
      console.log(sessionTime[0])
    } else {
      // sessionTime is not an array here
      console.log(sessionTime)
    }
    

    Working example on typescript playground

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 2021-04-29
      • 2018-04-25
      • 2023-04-01
      • 2021-12-31
      • 2021-12-20
      • 2021-10-11
      • 2017-03-14
      相关资源
      最近更新 更多