no-unnecessary-qualifier
Disallow unnecessary namespace qualifiers.
Some problems reported by this rule are automatically fixable by the --fix
ESLint command line option.
This rule requires type information to run.
Members of TypeScript enums and namespaces are generally retrieved as qualified property lookups: e.g. Enum.member
.
However, when accessed within their parent enum or namespace, the qualifier is unnecessary: e.g. just member
instead of Enum.member
.
This rule reports when an enum or namespace qualifier is unnecessary.
- Flat Config
- Legacy Config
export default tseslint.config({
rules: {
"@typescript-eslint/no-unnecessary-qualifier": "error"
}
});
module.exports = {
"rules": {
"@typescript-eslint/no-unnecessary-qualifier": "error"
}
};
Try this rule in the playground ↗
Examples
- ❌ Incorrect
- ✅ Correct
enum A {
B,
C = A.B,
}
Open in Playgroundnamespace A {
export type B = number;
const x: A.B = 3;
}
Open in Playgroundenum A {
B,
C = B,
}
Open in Playgroundnamespace A {
export type B = number;
const x: B = 3;
}
Open in PlaygroundOptions
This rule is not configurable.
When Not To Use It
If you explicitly prefer to use fully qualified names, such as for explicitness, then you don't need to use this rule.
Type checked lint rules are more powerful than traditional lint rules, but also require configuring type checked linting.
See Troubleshooting > Linting with Type Information > Performance if you experience performance degradations after enabling type checked rules.