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

ESLint no-unsafe-member-access报错的原因及修复方法

错误触发原因

这条@typescript-eslint/no-unsafe-member-access规则的核心作用,就是阻止所有对any类型值的无限制成员访问。
TypeScript对any类型的值不做任何类型校验,既不会知道这个值上有哪些可用属性,也不会校验你访问的属性到底是什么类型。当代码中你对某个被推导为any的对象访问.item属性时,ESLint就会判定这是不安全的操作,抛出对应报错。
日常写代码时最容易触发这个问题的场景,就是你要访问.item属性的那个对象,根本没有被定义过明确的类型:比如从接口拿回来的响应值没加类型声明、动态传入的函数入参没指定类型、获取DOM元素返回值没做类型断言,最终TypeScript就会把这个对象直接推导成any类型,从而触发校验。

对应修复方案
  • 优先给被访问的对象补上完整的TypeScript类型定义,明确标注出对象上包含item属性、以及item的具体类型,从根源上消除值的any类型推导,让TS能够正常识别这个成员访问操作的合法性。
  • 如果临时没法补全完整的类型定义,可以在执行成员访问前加一层类型收窄:比如用'item' in targetObject的类型守卫先判断属性是否存在,让TypeScript把原本的any类型收窄为包含合法item属性的具体类型,再进行访问。
  • 直接写注释// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access跳过这行校验的方式不推荐,这相当于直接绕开了类型检查的保护,很容易把属性不存在、类型不匹配的问题留到运行时才暴露。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 02:45:04