ng2lint
A set of tslint rules for static code analysis of Angular 2 TypeScript projects.
Recommended configuration
Below you can find a recommended configuration which is based on the Angular 2 Style Guide.
Roadmap
- Directive selector type.
- Directive selector name convention.
- Directive selector name prefix.
- Component selector type.
- Component selector name convention.
- Component selector name prefix.
- Use
@Input
instead ofinputs
decorator property. - Use
@Output
instead ofoutputs
decorator property. - Use
@HostListeners
and@HostBindings
instead ofhost
decorator property. - Do not use
nativeElement
injected withElementRef
. - Do not rename inputs.
- Do not rename outputs.
- Externalize template above n lines of code.
- Do not use the
@Attribute
decorator. - Do not use
forwardRef
. - Rise a warning for impure pipes.
- Do not declare global providers.
- Follow convention for naming the routes.
- Use
@Injectable
instead of@Inject
. - Single export per module, except facade modules.
- Proper naming of modules (kebab-case followed by module type followed by extension for regular modules, module name plus extension name for facades).
- Verify if used directive is declared in the current component or any parent component.
- Verify that property or method used in the template exists in the current context.
- Proper naming of directives and components (name plus
(Directive|Component)
suffix). - Locate component templates in the same directory.
- Locate tests in the same directory (rise optional warning when no test file is found).
- Rise warning on complex logic inside of the templates.
- Do not manipulate elements referenced within the template.
- Implement life-cycle hooks explicitly.
- Implement Pipe transform interface for pipes.
- Proper naming for pipes (kebab-case, optionally prefixed).
License
MIT