如何理解WebStorm显示的map、forEach等数组方法的函数接口定义?
数组方法TS类型提示释义
你在WebStorm中看到的悬浮提示是TypeScript的标准类型声明,你提到的几个符号含义如下:
回调函数中 => 类型 的含义
该语法用于标注回调函数的返回值类型:
map回调中的=> unknown:表示回调函数需要返回一个值,此处显示unknown是因为你当前操作的数组是元素类型未知的ReadonlyArray<unknown>,如果你的数组是明确的number[]/string[]类型,这里会自动匹配为对应的值类型。forEach回调中的=> void:表示该回调不需要返回任何值,即便你手动写了return语句,返回值也会被忽略不会被使用。
方法末尾 : 类型 的含义
该语法用于标注整个数组方法本身的返回值类型:
map末尾的: unknown[]:表示map方法执行完成后会返回一个新数组,数组元素类型为unknown,会随原数组的元素类型动态变化。forEach末尾的: void:表示forEach方法没有任何返回值,你尝试接收它的返回值只会得到undefined。
thisArg?: any 的含义
- 其中
?:是TypeScript的可选参数标识,代表该参数不是必填项,可传可不传。 thisArg是数组遍历方法的通用可选参数,作用是指定你传入的回调函数执行时,内部this关键字的指向,any表示该参数可以传入任意类型的值。
举个简单的使用示例:
const config = { prefix: '序号:' } // 传入config作为thisArg,回调内部的this就指向config ['苹果', '香蕉', '橙子'].forEach(function(item) { console.log(this.prefix + item) }, config)
内容的提问来源于stack exchange,提问作者TraktorJack
相关产品推荐
相关产品推荐

