Skip to content

no-unused-imports

Reports import specifiers that are never used.

This rule checks default imports, namespace imports, and named imports. When a binding is never referenced, it reports it and can remove the unused specifier with --fix.

By default, references inside JSDoc also count as usage. Bare side-effect imports like import "./init"; are ignored.

OptionTypeDefaultWhat it does
checkJSDocbooleantrueCounts supported JSDoc references as usage
eslint.config.js
import ceaseNonsense from "eslint-plugin-cease-nonsense";
export default [
{
plugins: {
"cease-nonsense": ceaseNonsense,
},
rules: {
"cease-nonsense/no-unused-imports": ["error", { checkJSDoc: true }],
},
},
];
Incorrect
import { unusedFunction, usedFunction } from "./utils";
import { AnotherUnused } from "./types";
usedFunction();
Correct
import { usedFunction } from "./utils";
import { anotherUsedFunction } from "./more-utils";
/**
* @see {anotherUsedFunction}
*/
usedFunction();