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
相关产品推荐
相关产品推荐

