Skip to content

Мертвый код

ID: dead_code | Степень критичности: Низкая (по умолчанию)

Мертвый код — это экспортируемые функции, классы или переменные, которые не импортируются и не используются больше нигде в проекте.

Почему это «запах»

  • Обуза при поддержке: Разработчики могут тратить время на обновление или рефакторинг кода, который даже не используется.
  • Размер бандла: Увеличивает итоговый размер приложения (хотя многие сборщики выполняют tree-shaking).
  • Путаница: Интерфейс (API) модуля кажется больше и сложнее, чем он есть на самом деле.

Примеры

Плохо

typescript
// utils.ts
export const usedHelper = () => { ... };
export const unusedHelper = () => { ... }; // Отмечается как мертвый код

// main.ts
import { usedHelper } from './utils';

Как исправить

  1. Удалите его: Если код действительно не используется, лучшее решение — удаление.
  2. Отметьте как точку входа: Если это часть публичного API или динамический импорт, добавьте его в entry_points в вашей конфигурации.

Конфигурация

yaml
entry_points:
  - 'src/index.ts'
  - 'src/api/**/*.ts'

ESLint правило

Этот детектор доступен как правило ESLint для получения обратной связи в реальном времени.

javascript
// eslint.config.js
export default [
  {
    rules: {
      '@archlinter/no-dead-code': 'warn',
    },
  },
];

Смотрите Интеграция с ESLint для инструкций по настройке.

Используйте entry_points для указания точек входа проекта, которые не должны помечаться как мертвый код.

Released under the MIT License.