元素隐式地具有“ any”类型,因为类型“ string”的表达式不能用于索引类型

将会

我定义了以下内容interface

export interface Data {
  visibleAction: string
  actionsVisibility: {
    actionForms: boolean
    backButton: boolean
    createAccount: boolean
    login: boolean
  }
  actionsHistory: string[]
  userID: string
}

稍后在类上实现:

export default class userManager extends Vue implements Data {
  actionsVisibility = {
    login: false,
    createAccount: false,
    backButton: false,
    actionForms: false
  }
  visibleAction = `login`
  actionsHistory = []
  userID = ``

  hideUserActionForm () {
    this.actionsVisibility[this.visibleAction] = false
  }
  ... other logic
}

对于this.actionsVisibility[this.visibleAction] = falseTS行,警告错误:

TS7053: Element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{ login: boolean; createAccount: boolean; backButton: boolean; actionForms: boolean; }'.   No index signature with a parameter of type 'string' was found on type '{ login: boolean; createAccount: boolean; backButton: boolean; actionForms: boolean; }'.

你能建议一下如何处理跟随类型主义:)

福特04

this.visibleActionin userManagerclassstring在您的情况下会得到一个类型,您不能使用stringthis.actionsVisibility作为计算的属性名称访问,因此会触发错误。

此外,TS设计的局限性是,类属性()visibleAction不会从基类型()获得上下文类型Data,因此您需要再次在类中注释类型。如果将鼠标悬停在类属性上,则会注意到某些属性与接口类型不匹配-有关此答案的更多说明

可能的解决方案

visibleActionDatauserManager显式类型keyof Data["actionsVisibility"],这是字符串键联盟actionsVisibility游乐场):

export interface Data {
    visibleAction: keyof Data["actionsVisibility"] // change this type
    actionsVisibility: {
        actionForms: boolean
        backButton: boolean
        createAccount: boolean
        login: boolean
    }
    ...
}

export default class userManager implements Data {
    actionsVisibility = {
        login: false,
        createAccount: false,
        backButton: false,
        actionForms: false
    }
    visibleAction: keyof Data["actionsVisibility"] = `login` // change this type
    ...

    hideUserActionForm() {
        this.actionsVisibility[this.visibleAction] = false // works now
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

元素隐式地具有“ any”类型,因为类型“ any”的表达式不能用于索引类型

来自分类Dev

Typescript错误:元素隐式具有“ any”类型,因为类型“ string”的表达式不能用于索引类型

来自分类Dev

TypeScript:隐式具有“ any”类型,因为类型“ string”的表达式不能用于索引类型

来自分类Dev

元素隐式具有“任意”类型,因为类型“字符串”的表达式不能用于索引类型A

来自分类Dev

带有React> Element的Typescript隐式具有'any'类型,因为类型'string'的表达式不能用于索引

来自分类Dev

元素隐式地具有“ any”类型,因为索引表达式不是“ number”类型。-索引签名错误

来自分类Dev

Build:元素隐式具有“ any”类型,因为索引表达式不是“ number”类型

来自分类Dev

React Typescript:元素隐式地具有“ any”类型,因为类型没有索引签名

来自分类Dev

元素隐式具有“ any”类型,因为ANGULAR中的type表达式

来自分类Dev

Object.keys迭代导致Typescript错误“元素隐式具有'any'类型,因为索引表达式不是'number'类型”

来自分类Dev

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

来自分类Dev

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

来自分类Dev

绑定元素“ title”隐式具有“ any”类型

来自分类Dev

元素隐式具有“任何”类型,因为索引表达式不是“数字”类型的打字稿 - 从数组中获取单个键

来自分类Dev

变量“ a”隐式具有“ any []”类型

来自分类Dev

TS2683:“ this”隐式具有类型“ any”,因为它没有使用“ apply”进行类型注释

来自分类Dev

'this' 隐式具有类型 'any',因为它没有类型注释。在函数上调用绑定时

来自分类Dev

打字稿中的原型:元素隐式具有“任何”类型,因为类型“_BaseOption”没有索引签名

来自分类Dev

在打字稿中调用rest API时,面临错误,因为“'this'隐式具有'any'类型,因为它没有类型注释”

来自分类Dev

绑定元素“导航器”隐式具有“任意”类型

来自分类Dev

数组查找方法错误元素隐式具有“ any”类型

来自分类Dev

React Navigation 5错误绑定元素'navigation'隐式具有'any'类型.ts

来自分类Dev

Nuxt-asyncData错误:“绑定元素'$ axios'隐式具有'any'类型。”

来自分类Dev

使用d3.mouse时出现D3打字稿错误:“ this”隐式具有类型“ any”,因为它没有类型注释

来自分类Dev

当 noImplicitAny 打开时,打字稿抛出 TS7017 错误并带有消息:元素隐式具有“任何”类型,因为类型“{}”没有索引签名

来自分类Dev

Node + TypeScript:“ this”隐式具有类型“ any”

来自分类Dev

函数隐式具有返回类型“ any”错误

来自分类Dev

参数“error”隐式具有“any”类型

来自分类Dev

无法将带有[]的索引应用于类型为'ISet <string>'的表达式

Related 相关文章

  1. 1

    元素隐式地具有“ any”类型,因为类型“ any”的表达式不能用于索引类型

  2. 2

    Typescript错误:元素隐式具有“ any”类型,因为类型“ string”的表达式不能用于索引类型

  3. 3

    TypeScript:隐式具有“ any”类型,因为类型“ string”的表达式不能用于索引类型

  4. 4

    元素隐式具有“任意”类型,因为类型“字符串”的表达式不能用于索引类型A

  5. 5

    带有React> Element的Typescript隐式具有'any'类型,因为类型'string'的表达式不能用于索引

  6. 6

    元素隐式地具有“ any”类型,因为索引表达式不是“ number”类型。-索引签名错误

  7. 7

    Build:元素隐式具有“ any”类型,因为索引表达式不是“ number”类型

  8. 8

    React Typescript:元素隐式地具有“ any”类型,因为类型没有索引签名

  9. 9

    元素隐式具有“ any”类型,因为ANGULAR中的type表达式

  10. 10

    Object.keys迭代导致Typescript错误“元素隐式具有'any'类型,因为索引表达式不是'number'类型”

  11. 11

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

  12. 12

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

  13. 13

    绑定元素“ title”隐式具有“ any”类型

  14. 14

    元素隐式具有“任何”类型,因为索引表达式不是“数字”类型的打字稿 - 从数组中获取单个键

  15. 15

    变量“ a”隐式具有“ any []”类型

  16. 16

    TS2683:“ this”隐式具有类型“ any”,因为它没有使用“ apply”进行类型注释

  17. 17

    'this' 隐式具有类型 'any',因为它没有类型注释。在函数上调用绑定时

  18. 18

    打字稿中的原型:元素隐式具有“任何”类型,因为类型“_BaseOption”没有索引签名

  19. 19

    在打字稿中调用rest API时,面临错误,因为“'this'隐式具有'any'类型,因为它没有类型注释”

  20. 20

    绑定元素“导航器”隐式具有“任意”类型

  21. 21

    数组查找方法错误元素隐式具有“ any”类型

  22. 22

    React Navigation 5错误绑定元素'navigation'隐式具有'any'类型.ts

  23. 23

    Nuxt-asyncData错误:“绑定元素'$ axios'隐式具有'any'类型。”

  24. 24

    使用d3.mouse时出现D3打字稿错误:“ this”隐式具有类型“ any”,因为它没有类型注释

  25. 25

    当 noImplicitAny 打开时,打字稿抛出 TS7017 错误并带有消息:元素隐式具有“任何”类型,因为类型“{}”没有索引签名

  26. 26

    Node + TypeScript:“ this”隐式具有类型“ any”

  27. 27

    函数隐式具有返回类型“ any”错误

  28. 28

    参数“error”隐式具有“any”类型

  29. 29

    无法将带有[]的索引应用于类型为'ISet <string>'的表达式

热门标签

归档