+关注继续查看

导文

Ts中string、number和any等类型 不能当做索引用,怎么处理?
报错: 元素隐式具有“any”类型,因为类型为“number”的表达式不能用于索引类型“[***”。在类型“[ ***”上找不到具有类型为“number"的参数的索引签名。 ts(7053)
keyof 的使用

问题

Ts中string、number和any等类型 不能当做索引用,怎么处理?

const handerField = (item: number) => {
   caselist= data.showList[item]//报错
}

元素隐式地拥有 any 类型,因为 number类型不能被用于索引 {} 类型。

解决方法

方法1

const handerField = (item: number) => {
   caselist= (data.showList as any)[item];
}

方法2

const handerField = (item: number) => {
   caselist= data.showList [item as keyof typeof data.showList ]
}

方法3

const handerField =  function <T extends object, K extends keyof T>(obj: T, key: K) {
  return obj[key];
                使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果
            
使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果
《JavaScript启示录》——1.11 原始值(String、Number、Boolean)在被用做对象时就像对象
原始值被当作构造函数创建的一个对象来使用时,JavaScript会将其转换为一个对象,以便可以使用对象的特性(如方法),而后抛弃对象性质,并将它变回到原始值。下面的代码采用了原始值,并展示了将值作为对象使用时会发生什么事情。
Java字符串(String类)(下)
前面小编给大家分享了Java语法的知识,今天和大家一起学习关于Java字符串的相关知识,字符串在校招笔试中也是常考的一类题目,也是非常的重要,希望看完这篇文章,能对你们有所帮助,fighting冲冲冲~~~