Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom suffix in Angular class names

Is it possible to configure an Angular 7 (with CLI 7.x) project to use class name suffixes other than the default ones?

More specifically, for classes that represent dialog boxes, I want to use Dialog in the end, and not DialogComponent, which is unnecessarily long. And for classes that represent pages I want to use Page, and not PageComponent.

examples:

  • use LoginDialog instead of LoginDialogComponent
  • use MainPage instead of MainPageComponent

Simple renaming isn't possible, due to the tslint rules preset within Angular.

like image 438
vitaly-t Avatar asked Nov 04 '18 20:11

vitaly-t


2 Answers

Before Angular 11, linting was done using TSLint. TSlint has been deprecated and ESLint is now used.

In .eslintrc.js file - In IONIC and Angular <= v11 projects, Components can be created with a Page suffix to distinguish pages from 'components' used in pages. The following rule adds Page as a known suffix.

'@angular-eslint/component-class-suffix': [
      'warn',
      {
        suffixes: ['Component', 'Page'],
      },
    ],

NOTE :- The above rule needs to be added in

"overrides": [
    { "rules": {
           // add here
   },
 }
like image 159
KenF Avatar answered Nov 15 '22 03:11

KenF


Open tslint.json in the root of your project and update a component-class-suffix property:

{
  ...
  "component-class-suffix": [true, "Component", "View"]
  ...
}

Please notice Component should stay there if you want the default suffix to still be valid.

like image 29
Vitaliy Ulantikov Avatar answered Nov 15 '22 05:11

Vitaliy Ulantikov