Мне было интересно, чем отличается следующий способ создания EventEmitter и какой из них лучше.

@Output
balanceDueLoader = new EventEmitter<boolean>();

@Output
balanceDueLoader = new EventEmitter<boolean>(false);

@Output()
balanceDueLoader: EventEmitter<boolean> = new EventEmitter<boolean>();
2
Patricio Vargas 14 Сен 2018 в 00:12

2 ответа

Лучший ответ

Изменить: копирование моего комментария здесь: разница только в том, что вы пишете больше кода. Кроме того, нет никакой разницы.

Исходный ответ: когда вы объявляете свойство с начальным значением, обычно вам не нужно указывать тип. Тип определяется по начальному значению. Так что третий вам не нужен. Конструктор EventEmitter имеет параметр со значением по умолчанию false, поэтому вам не нужно передавать параметр, если вы перешли на использование значения по умолчанию. Так что выбирайте первый вариант. У него меньше кода для написания

4
csbenjamin 13 Сен 2018 в 21:53

@Output balanceDueLoader = новый EventEmitter ();

@Output balanceDueLoader = новый EventEmitter (false);

@Output () balanceDueLoader: EventEmitter = новый EventEmitter ();

На самом деле разницы нет

Первый и второй точно такие же, потому что по умолчанию значение false. Будет разница, если вы передадите true эмиттеру событий, который сделает событие асинхронным. По умолчанию синхронный.

Единственное отличие третьего - вы назначаете ему тип, который позволит вам идеально завершить код.

https://netbasal.com/event-emitters-in-angular-13e84ee8d28c Подробнее об эмиттере событий читайте здесь.

2
Gurvinder Guraya 14 Сен 2018 в 01:58