Пользовательский префикс для компонентов Angular и WebStorm

Я изначально начал несколько месяцев назад проект в Angular с помощью редактора кода Visual Studio.

сегодня я переключился на WebStorm, а также обновил свой проект до Angular 4.0.

В то время как мой проект работает хорошо без каких-либо ошибок, я получаю следующую ошибку в WebStorm:

TSLint: селектор компонента " ConnectionStatusComponent" должен иметь префикс " app" ( https://angular.io/docs/ts/latest/guide/style-guide.html#!#02-07) (компонент-селектора)

после этой ссылки я понял, что это хорошая практика, чтобы добавить пользовательский префикс в селектор компонентов в prevent name collisions with components in other apps and with native HTML elements

Я понимаю, что. Мой вопрос в том, почему я вынужден использовать app префикс, а не другие приставки? Если я ставлю другой префикс, то app, WebStorm отметит строку как ошибку.

согласно Руководству по стилю из этого ссылка:

используйте пользовательский префикс для селектора компонентов. Например, префикс toh представляет из тура героев и префикс admin представляет админку.

Я могу использовать любой префикс, который я хочу. Есть ли правило на имя префикса?

1 ответов


насколько я знаю, нет строгих правил по имени префикс. Если вы используете CLI, вы можете редактировать prefix узел apps на angular-cli.json. Это заставит cli создавать новые компоненты с любым префиксом, который вы решите. Для tslint.json вы можете установить как компонентные, так и директивные правила:

"directive-selector": [true, "attribute", "app", "camelCase"],
"component-selector": [true, "element", "app", "kebab-case"],

надеюсь, что это помогает.

редактировать

если вы хотите использовать более одного префикса, вы можете указать их в массив как это(пример отсюда):

//RULES: [ENABLED, "attribute" | "element", "selectorPrefix" | ["listOfPrefixes"], "camelCase" | "kebab-case"]
  "directive-selector": [true, "attribute", ["dir-prefix1", "dir-prefix2"], "camelCase"],
  "component-selector": [true, "element", ["cmp-prefix1", "cmp-prefix2"], "kebab-case"],
  • в массиве первый аргумент является логическим для того, является ли он включено или нет.
  • второй аргумент-это тип объединения с вариантами attribute или element.
  • третьим аргументом является либо строка для одного префикса, либо массив для списка префиксов.
  • и четвертый аргумент является типом объединения либо kebab-case или camelCase.