JS.TS.NO.UNNECESSARY.QUALIFIER

Warns when a namespace qualifier is unnecessary

Rule Details

This rule aims to let users know when a namespace or enum qualifier is unnecessary, whether used for a type or for a value.

Examples of code for this rule:

<!--tabs-->

Incorrect

Copy
namespace A {
  export type B = number;
  const x: A.B = 3;
}
Copy
namespace A {
  export const x = 3;
  export const y = A.x;
}
Copy
enum A {
  B,
  C = A.B,
}
Copy
namespace A {
  export namespace B {
    export type T = number;
    const x: A.B.T = 3;
  }
}

Correct

Copy
namespace X {
  export type T = number;
}

namespace Y {
  export const x: X.T = 3;
}
Copy
enum A {
  X,
  Y,
}

enum B {
  Z = A.X,
}
Copy
namespace X {
  export type T = number;
  namespace Y {
    type T = string;
    const x: X.T = 0;
  }
}

Options

Copy
// .eslintrc.json
{
  "rules": {
    "@typescript-eslint/no-unnecessary-qualifier": "warn"
  }
}

This rule is not configurable.

When Not To Use It

If you don't care about having unneeded namespace or enum qualifiers, then you don't need to use this rule.

The content on this page is adapted from the ESLint User Guide. Copyright © OpenJS Foundation and other contributors, www.openjsf.org. All rights reserved. https://eslint.org/docs/rules/