相关文章推荐
慷慨大方的皮带  ·  vue3+ts:shims-vue.d.ts·  2 月前    · 
叛逆的山楂  ·  调试 JavaScript 或 ...·  2 月前    · 
大方的皮蛋  ·  Uncaught SyntaxError: ...·  2 年前    · 
坚强的铁板烧  ·  ASM ...·  2 年前    · 
私奔的火车  ·  ONLYOFFICE ...·  2 年前    · 

使用typescript来进行类型定义和约束时,经常会出现类似报错: 元素隐式具有“any”类型,因为“string”类型的表达式不能用于索引类型

如:定义一个请求方式与对应的className的字典映射

const methodMap = {
     GET: style["get"],
     POST: style["post"],
     PUT: style["put"],
     PATCH: style["patch"],
     DELETE: style["delete"],
     OPTIONS: style["options"],
     HEAD: style["head"],
     CONNECT: style["connect"]

在使用的时候,根据实际的请求方式,设置不同的类名;如果单纯这样使用,编译器会进行报错:

className={methodMap[method]}

这是因为传入的method字段,在编译器看来是一个字符串,而不是【GET、POST...】这几个值的一种,因此类型是不一致的。这个时候要正确使用,就需要显示声明传入的值与这些值一致:

methodMap[method as keyof typeof methodMap]
最近在前端项目中遇到在用字符串当对象的key时错,错信息如下: “元素隐式具有 “any” 类型,因为类型为 “string” 的表达式不能用于索引类型” 在类型 XXX 上找不到具有类型为 “string” 的参数的索引签名。 搜索了一圈解决方案,没一个特别优雅的。 方案一,修改tsconfig 是修改tsconfig.json,加下面这行参数屏蔽检查,从而不错。 "suppressImplicitAnyIndexErrors":true, 方案二,写一个函数转类型 export function 元素隐式地拥有 any 类型,因为 number类型不能用于索引 {} 类型。Ts中string、number和any等类型 不能当做索引用,怎么处理?Ts中string、number和any等类型 不能当做索引用,怎么处理? 问题: 元素隐式具有 “any“ 类型,因为类型为 “string“ 的表达式不能用于索引类型 “Object“。 在类型 “Object“ 上找不到具有类型为 “string“ 的参数的索引签名 描述: 在写代码的时候,对一个对象做了一个for…in循环,然后取到了其每一个key对应的value值,但是写完之后发现Typescript错了,错误内容就是如题,有点奇怪,特此去了解一下 for (const key in obejct) { // 处理... obejct[key] 在tsconfig.json中compilerOptions里面新增忽略的代码,如下所示,添加后则不会错 "suppressImplicitAnyIndexErrors": true 类型断言 const values = data.map((item) => Number(item[column.property as keyof typeof item])); const values = data.map((item) => Number(item[column.property 使用 get() set() 定义计算属性时,出现 '不能类型“WritableComputedRef”分配给类型string” ts(2322)' 或 "error TS2322: Type 'WritableComputedRef' is not assignable to type 'string'" 错误解决方法        Elasticsearch中每个索引定义时都有一个映射mappings,该映射确定如何对文档建立索引。一个映射mappings中主要包含两部分:         1、元字段:主要包括每个文档的_index、_type、_id和_source以及_all等。其中常用的属性有:                 1>dynamic:是否可以动态索引数据。可以取值”true”、”false”或”strict”,默认为”true”。”true”表示如果存在索引中未定义的字段数据时,自动索引该字段数据,即该字段可以被作为查询条件被查询到;”false”表示如果存在索引中未定义的字段