Código Morto (Dead Code)
ID: dead_code | Gravidade: Baixa (padrão)
Código morto refere-se a funções, classes ou variáveis exportadas que não são importadas ou usadas em nenhum outro lugar do projeto.
Por que isso é um smell
- Custo de Manutenção: Desenvolvedores podem gastar tempo atualizando ou refatorando código que nem sequer é usado.
- Tamanho do Bundle: Aumenta o tamanho final da aplicação (embora muitos bundlers façam tree-shaking).
- Confusão: Faz com que a API de um módulo pareça maior e mais complexa do que realmente é.
Exemplos
Ruim
typescript
// utils.ts
export const usedHelper = () => { ... };
export const unusedHelper = () => { ... }; // Relatado como código morto
// main.ts
import { usedHelper } from './utils';Como corrigir
- Delete-o: Se estiver realmente sem uso, a melhor ação é a remoção.
- Marcar como Ponto de Entrada (Entry Point): Se for parte de uma API pública ou um import dinâmico, adicione-o a
entry_pointsna sua configuração.
Configuração
yaml
entry_points:
- 'src/index.ts'
- 'src/api/**/*.ts'Regra ESLint
Este detector está disponível como uma regra ESLint para feedback em tempo real no seu editor.
javascript
// eslint.config.js
export default [
{
rules: {
'@archlinter/no-dead-code': 'warn',
},
},
];Veja Integração ESLint para instruções de configuração.