元素隐式具有“任何”类型,因为类型的表达式
Posted
技术标签:
【中文标题】元素隐式具有“任何”类型,因为类型的表达式【英文标题】: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)[]'.
我该如何解决这个错误...
【问题讨论】:
【参考方案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
【讨论】:
以上是关于元素隐式具有“任何”类型,因为类型的表达式的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript:元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型
TypeScript - 元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型
元素隐式具有“任何”类型,因为字符串类型的表达式 | number 不能用于索引类型
如何使用命名数组的接口:元素隐式具有“任何”类型,因为索引表达式不是“数字”类型