You need to enable JavaScript to run this app. Next.js+TypeScript项目build报'_'已声明未使用,修改tsconfig无效如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Next.js+TypeScript项目build报'_'已声明未使用,修改tsconfig无效如何解决

解决方案

你遇到的报错是未使用变量的检查规则触发的,改了tsconfig仍不生效通常是因为还有ESLint规则同时做检查,或是配置没有正确覆盖Next.js的默认构建规则,可按优先级选择以下方案:

方案1:直接修改代码(最推荐)

你当前的对象解构中声明了不需要的_变量,直接移除即可,修改后代码如下:

useScrollPosition(
  ({ currPos }: any) => {
    const isShow = currPos.y > -100
    if (isShow !== hideOnScroll) setHideOnScroll(isShow)
  },
  [hideOnScroll],
  null,
  false,
  null
)

如果需要保留占位标识方便后续维护,也可以将_改为_prevPos这类带下划线前缀的变量名,TypeScript和主流ESLint规则默认会忽略前缀为下划线的未使用变量。

方案2:修正配置覆盖规则

如果确实需要保留_变量,可按以下步骤排查配置:

  • 确认tsconfig.json的compilerOptions下同时关闭两个相关检查:
    "noUnusedLocals": false,
    "noUnusedParameters": false
    
  • 若项目开启了ESLint检查,修改.eslintrc.json中的规则,允许_作为未使用变量:
    "rules": {
      "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }]
    }
    
  • 若使用Next.js 13+的App Router,可在next.config.js中添加配置关闭生产构建的强制类型检查(不推荐,仅临时应急使用):
    module.exports = {
      typescript: {
        ignoreBuildErrors: true,
      },
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 11:36:03