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
declare
keywords - 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 {}