元素隐式具有'any'类型,因为类型的表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了元素隐式具有'any'类型,因为类型的表达式相关的知识,希望对你有一定的参考价值。

这是我在limit-entries.ts中悬停在数据[command]上时遇到的完整错误

(参数)数据:dataProps元素隐式具有“ any”类型因为类型'“ hourly”'的表达式不能用于索引类型'dataProps'。类型“ dataProps”不存在属性“每小时”]

darkSkyApiTypes.ts

interface dataProps {
  data: {
    latitude: number
    longitude: number
    timezone: string
    currently?: {
      time: number
      summary: string
      temperature: number
      humidity: number
    }
    hourly?: {
      summary: string
      icon?: string
      data: {
        time: number
        temperature: number
        humidity: number
      }[]
    }
    daily?: {
      summary: string
      icon?: string
      data: {
        time: number
        temperatureMin: number
        temperatureMax: number
        humidity: number
      }[]
    }
  }
}

export = dataProps

limit-entries.ts

import { hourlyLimit } from '../config'
import dataProps from '../API/darkSkyAPITypes'

const limitEntries = (data: dataProps, command: string) => {
  let entries

  switch (command) {
    case 'currently':
      entries = data[command]
      break
    case 'hourly':
      entries = data[command].data.slice(0, hourlyLimit)
      break
    case 'daily':
      entries = data[command].data
      break
    default:
      entries = data[command]
  }

  return entries
}

module.exports = limitEntries

我得到标题错误。帮助!

[这是我将鼠标悬停在limit-entries.ts(参数)数据中的数据[command]上时遇到的全部错误:dataProps元素隐式具有“ any”类型,因为类型为“ hourly”的表达式不能为使用的...

答案

dataProps定义具有单个名为data的顶级属性的对象类型。您的data变量的类型为dataProps,因此您需要data.data来引用该属性。因此,如果您有data[command],则应该有data.data[command]。 (或更改dataProps的定义。)

以上是关于元素隐式具有'any'类型,因为类型的表达式的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript Err:“元素隐式具有‘any’类型,因为‘any’类型的表达式不能用于索引类型

更新 Map 的值时,“元素隐式具有 'any' 类型,因为类型的表达式不能用于索引类型”的错误

TS7053:元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“用户经济”

元素隐式具有“任何”类型,因为类型“窗口”没有索引签名?

元素隐式具有“任何”类型,因为类型的表达式

元素隐式具有“任何”类型,因为类型的表达式