Подтвердить что ты не робот

Что означает символ @на typescipt - Angular 2

Я использую typescript для разработки приложений angular 2.

Но когда мы пишем код для конфигурации компонента или маршрута или в другом месте мы используем символ "@".

Мой вопрос в том, что означает этот символ и почему он требуется?

4b9b3361

Ответ 1

Символ @, на который вы ссылаетесь, называется decorator.

Декораторы предоставляют способ добавить как аннотации, так и метапрограммирующий синтаксис для объявлений классов и членов.

В основном, когда вы делаете @component, вы сообщаете компилятору, что класс является компонентом angular2 с метаданными, переданными в качестве аргумента.

например,

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

этот код сообщит компилятору, что класс HeroesComponent должен быть angular2 компонентом с метаданными, переданным как аргументы, и он создаст класс компонентов.

Декоратор не волшебство. Его просто функция-вызов.

например,

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

эквивалентно:

class DynamicComponent {
}

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

Надеюсь, что это поможет.

Ответ 2

Это означает, что вы применяете декоратор.

С введением классов в TypeScript и ES6 теперь существуют определенные сценарии, требующие дополнительных функций для поддержки аннотирования или модификации классов и членов класса. Декораторы обеспечивают способ добавления как аннотаций, так и метапрограммирующего синтаксиса для деклараций классов и членов. Декораторы - это предложение этапа 1 для JavaScript и доступны в качестве экспериментальной функции TypeScript.