no-namespace
Recommended
Disallows the use of namespace and module keywords in TypeScript code.
Disallows the use of namespace and module keywords in TypeScript code.
namespace and module are both thought of as outdated keywords to organize
the code. Instead, it is generally preferable to use ES2015 module syntax (e.g.
import/export).
However, this rule still allows the use of these keywords in the following two cases:
- they are used for defining "ambient" namespaces along with
declarekeywords - they are written in TypeScript's type definition files:
.d.ts
Invalid:
// foo.ts
module mod {}
namespace ns {}
// bar.d.ts
// all usage of `module` and `namespace` keywords are allowed in `.d.ts`
Valid:
// foo.ts
declare global {}
declare module mod1 {}
declare module "mod2" {}
declare namespace ns {}
// bar.d.ts
module mod1 {}
namespace ns1 {}
declare global {}
declare module mod2 {}
declare module "mod3" {}
declare namespace ns2 {}