You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为React中类似Map的get函数添加TypeScript类型标注?

为箭头函数添加TypeScript类型标注

针对你给出的函数,最贴合功能且类型精准的方式是使用泛型来标注,既能保留对象和键的具体类型信息,又符合TypeScript的类型约束要求:

const mapLikeGet = <T extends object, K extends keyof T>(obj: T, key: K): T[K] | undefined => {
    if (Object.prototype.hasOwnProperty.call(obj, key))
        return obj[key]
}

类型说明:

  • <T extends object, K extends keyof T>:定义两个泛型参数,T约束为任意对象类型,K约束为T的所有键类型,确保传入的key一定是obj上可能存在的键
  • obj: T:第一个参数标注为泛型对象类型T
  • key: K:第二个参数标注为T的键类型K
  • T[K] | undefined:返回值标注为T中key对应的值类型,或者undefined(因为当key不存在时函数没有返回值)

如果不需要这么精准的类型,也可以用更宽泛的标注方式,但会丢失具体类型信息:

const mapLikeGet = (obj: Record<string, unknown>, key: string): unknown | undefined => {
    if (Object.prototype.hasOwnProperty.call(obj, key))
        return obj[key]
}

这种方式下,obj被标注为键是string、值是unknown的对象,key是string类型,返回值是unknown或undefined。

内容的提问来源于stack exchange,提问作者Byron Cox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:15:41