Disallow the use of custom TypeScript modules and namespaces (no-namespace)
Custom TypeScript modules (module foo {}
) and namespaces (namespace foo {}
) are considered outdated ways to organize TypeScript code. ES2015 module syntax is now preferred (import
/export
).
This rule still allows the use of TypeScript module declarations to describe external APIs (declare module 'foo' {}
).
Rule Details
This rule aims to standardize the way modules are declared.
Options
This rule, in its default state, does not require any argument. If you would like to enable one or more of the following you may pass an object with the options set as follows:
allowDeclarations
set totrue
will allow you todeclare
custom TypeScript modules and namespaces (Default:false
).allowDefinitionFiles
set totrue
will allow you todeclare
and use custom TypeScript modules and namespaces inside definition files (Default:true
).
Examples of incorrect code for the default { "allowDeclarations": false, "allowDefinitionFiles": false }
options:
Examples of correct code for the default { "allowDeclarations": false, "allowDefinitionFiles": false }
options:
allowDeclarations
allowDeclarations
Examples of incorrect code for the { "allowDeclarations": true }
option:
Examples of correct code for the { "allowDeclarations": true }
option:
Examples of incorrect code for the { "allowDeclarations": false }
option:
Examples of correct code for the { "allowDeclarations": false }
option:
allowDefinitionFiles
allowDefinitionFiles
Examples of incorrect code for the { "allowDefinitionFiles": true }
option:
Examples of correct code for the { "allowDefinitionFiles": true }
option:
When Not To Use It
If you are using the ES2015 module syntax, then you will not need this rule.
Further Reading
Compatibility
TSLint: no-namespace
Last updated