美文网首页
元素隐式具有 "any" 类型,因为类型为 "string" 的

元素隐式具有 "any" 类型,因为类型为 "string" 的

作者: 很好就这样吧 | 来源:发表于2023-02-26 14:12 被阅读0次

问题: 元素隐式具有 “any“ 类型,因为类型为 “string“ 的表达式不能用于索引类型 “Object“。 在类型 “Object“ 上找不到具有类型为 “string“ 的参数的索引签名
描述: 获取url携带的参数转成对象形式进行读取的一个方法函数


image.png

原因:key值的类型不是string,在javascript中是默认给你转好的,而在Typescript中则不是,因此要么转,要么声明,要么忽略…

方案一:忽略

在tsconfig.json中compilerOptions里面新增忽略的代码,如下所示,添加后则不会报错

"suppressImplicitAnyIndexErrors": true,

方案二:声明

在定义的Interface里对其进行声明,如下所示,声明过后,也不会再报错

interface NObject {
  [key: string]: string | number | undefined | null | void
}
export const getUrlData = (link: string = window.location.href): NObject => {
  const url = link
  const obj = {} as NObject  // 此处声明之后可以用方括号的方式设置对象的键值
  if (url.includes('?')) {
    const params = url.split('?')[1].split('&')
    params.map((v) => (obj[v.split('=')[0]] = v.split('=')[1]))
  }
  return obj
}

相关文章

  • ts开发问题记录

    1、报错 元素隐式具有 "any" 类型,因为类型为 "any" 的表达式不能用于索引类型 代码如下 解析:key...

  • zset类型

    zset类型 sorted set,有序集合 元素为string类型 元素具有唯⼀性,不重复 每个元素都会关联⼀个...

  • Redis 数据结构之zset有序集合

    zset类型 sorted set,有序集合 元素为string类型 元素具有唯⼀性,不重复 每个元素都会关联⼀个...

  • set 类型

    set类型 ⽆序集合 元素为string类型 元素具有唯⼀性,不重复 说明:对于集合没有修改操作 增加 添加元素 ...

  • Redis 数据结构之set无序集合

    set类型 ⽆序集合 元素为string类型 元素具有唯⼀性,不重复 说明:对于集合没有修改操作 增加 添加元素 ...

  • redis教程: zset命令

    zset类型 sorted set,有序集合 元素为string类型 元素具有唯一性,不重复 每个元素都会关联一个...

  • 简述C#变量的隐式类型声明

    隐式类型 在方法范围中声明的变量可以具有隐式类型var。隐式类型可以替代任何类型,它的具体类型由编译器根据上下文推...

  • redis教程: set命令

    set类型 无序集合 元素为string类型 元素具有唯一性,不重复 说明:对于集合没有修改操作 一、增加 1. ...

  • 《Real World Haskell》笔记(8):文件处理、正

    高效文件处理 默认String类型为何效率不高? String 是元素类型为 Char 的列表,列表每个元素被单独...

  • JS 隐式转换

    隐式转换 数据类型基本数据类型: undefined string boolean null number sym...

网友评论

      本文标题:元素隐式具有 "any" 类型,因为类型为 "string" 的

      本文链接:https://www.haomeiwen.com/subject/omqcldtx.html