Inicialmente comencé hace unos meses un proyecto en Angular usando el editor de Visual Studio Code.
Hoy cambié a WebStorm y también actualicé mi proyecto a Angular 4.0.
Mientras mi proyecto funciona bien sin ningún error, recibo el siguiente error en WebStorm:
TSLint: el selector del componente "ConnectionStatusComponent" debe tener el prefijo "aplicación" ( https://angular.io/docs/ts/latest/guide/style-guide.html#!#02-07 ) (selector de componentes)
Siguiendo ese enlace, me di cuenta de que es una buena práctica agregar un prefijo personalizado al selector de componentes para prevent name collisions with components in other apps and with native HTML elements
Entiendo que. Mi pregunta es ¿por qué estoy obligado a usar el prefijo de la app y no otro prefijo? Si pongo otro prefijo y luego app , WebStorm marcará la línea como error.
De acuerdo con la guía de estilo de ese enlace:
Utilice un prefijo personalizado para un selector de componentes. Por ejemplo, el prefijo toh representa Tour of Heroes y el prefijo admin representa un área de funciones de administración.
Puedo usar cualquier prefijo que quiera. ¿Hay una regla sobre el nombre del prefijo?
Hasta donde yo sé, no hay reglas estrictas sobre el nombre del prefijo. Si usa la CLI, puede editar el nodo de prefix en apps en angular-cli.json . Esto hará que la CLI cree nuevos componentes con el prefijo que decidas. Para tslint.json , puede establecer reglas de componentes y directivas:
"directive-selector": [true, "attribute", "app", "camelCase"], "component-selector": [true, "element", "app", "kebab-case"],Espero que esto ayude.
EDITAR
Si desea usar más de un prefijo, puede especificarlos en una matriz como esta ( ejemplo de aquí ):
//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 o element de opciones.kebab-case o camelCase .