world versiones starter hello guide app typescript angular

typescript - versiones - install angular



¿Qué significa el símbolo @ en mecanografiado-Angular 2? (2)

Estoy utilizando mecanografiado para el desarrollo de aplicaciones angular 2.

Pero cuando escribimos código para la configuración de componentes o rutas o en algún otro lugar, usamos el símbolo "@".

Mi pregunta es ¿qué significa este símbolo y por qué se requiere?


Esto significa que estás aplicando un decorador.

Con la introducción de Clases en TypeScript y ES6, ahora existen ciertos escenarios que requieren características adicionales para admitir anotaciones o modificaciones de clases y miembros de clases. Los decoradores proporcionan una forma de agregar anotaciones y una sintaxis de metacomprogramación para las declaraciones de clase y los miembros. Los decoradores son una propuesta de primera etapa para JavaScript y están disponibles como una función experimental de TypeScript.


El símbolo @ te refieres se llama decorator .

Los decoradores proporcionan una forma de agregar anotaciones y una sintaxis de metacomprogramación para las declaraciones de clase y los miembros.

Básicamente, cuando estás haciendo @component le estás diciendo al compilador que la clase es un componente angular2 con los metadatos pasados ​​como argumento.

por ej.

@Component({ moduleId: module.id, selector: ''heroes-app'', templateUrl: ''heroes.component.html'', styleUrls: [''heroes.component.css''], }) class HeroesComponent{}

este código le dirá al compilador que se supone que la clase HeroesComponent es un componente angular2 con metadatos pasados ​​como argumentos y creará una clase de componente.

El decorador no es una magia. Es solo una función que llama.

por ej.

@Component({ selector: ''static-component'', template: `<p>Static Component</p>` }) class StaticComponent {}

es equivalente a:

class DynamicComponent { } const dynamicComponent = Component({ selector: ''dynamic-component'', template: `<p>Dynamic Component</p>` })(DynamicComponent);

Espero que esto ayude.