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

TypeScript中如何仅针对单个interface禁用ESLint的camelcase规则?

// eslint-disable-next-line camelcase 在interface场景下不生效,是因为interface内部的属性属于类型声明块的子节点,next-line注释的作用域只会覆盖紧接在注释下的AST节点(也就是整个interface声明节点),没法穿透到块内的单个属性上。

不用调整全局ESLint配置,两种局部生效的写法就能解决问题,豁免范围完全可控,不会影响其他代码的camelcase校验:

方案1:块级规则豁免(最推荐)

在需要特殊处理的interface前后加上成对的规则开关注释,豁免范围严格限制在两段注释之间:

interface AgeData {
    name: string,
    corner: number
}

/* eslint-disable camelcase */
interface APIResp {
    file_name: string,
    data_info: AgeData[],
    interest_m: number
}
/* eslint-enable camelcase */

方案2:单属性行内豁免

如果觉得块级豁免范围太大,可以给每个带下划线命名的属性加当前行的禁用注释,注意这里要用eslint-disable-line作用于属性所在行,不要用next-line:

interface APIResp {
    file_name: string, // eslint-disable-line camelcase
    data_info: AgeData[], // eslint-disable-line camelcase
    interest_m: number // eslint-disable-line camelcase
}

实践建议

这类对接外部接口的场景,类型定义只负责对齐接口原始返回结构即可,实际业务代码使用时,建议拿到响应后先做一层字段转换,把下划线命名的字段转成驼峰格式再往下传递,避免业务逻辑里零散出现下划线命名触发ESLint报错,也不用到处加规则禁用注释。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:18:19