уровне вьюхи компоненты для поиска на каком вложенном элементе произошло событие. Из вьюхи вызывается как  (click)="_getTaskDetailsForModal($event)" 
                  
                  
                  
                  
                  
                  Если в определении метода _getTaskDetailsForModal не указать тип аргумента, то все работает корректно. Если указать тип event: MouseEvent, то VS Code показывает такие ошибки:
                  
                  
                  1) Оператор "!==" невозможно применить к типам "EventTarget" и "this".
                  
                  
                  2) Свойство "tagName" не существует в типе "EventTarget"
                  
                  
                  3) Свойство "dataset" не существует в типе "EventTarget"
                  
                  
                  4) Свойство "parentNode" не существует в типе "EventTarget".
                  
                  
                  
                  
                  
                  Подскажите, что нужно поменять, чтобы и тип аргумента был указан и код отдавал тот же результат?
                  
                  
                  
                  
                  
                  Сам код такой 
                  
                  
                  private _getTaskDetailsForModal(event) {
                  
                  
                      let target = event.target;
                  
                  
                  
                  
                  
                      while (target !== this && target !== null) {
                  
                  
                        if (target.tagName === 'APP-TASK') {
                  
                  
                          const groupIndex = this._boardService.board.groups.findIndex(
                  
                  
                            item => item._id === target.dataset.taskGroupId
                  
                  
                          );
                  
                  
                  
                  
                  
                          const taskIndex = this._boardService.board.groups[groupIndex].tasks.findIndex(item => item._id === target.dataset.taskId);
                  
                  
                  
                  
                  
                          this._taskService.taskDetails = Object.assign({},  this._boardService.board.groups[groupIndex].tasks[taskIndex]);
                  
                  
                  
                  
                  
                          if (!this._isModalSignInVisible && this._isModalSignUpVisible) {
                  
                  
                            this.toggleAuthFormsVisible();
                  
                  
                          }
                  
                  
                  
                  
                  
                          this._openModal(this.modal1);
                  
                  
                  
                  
                  
                          return;
                  
                  
                        }
                  
                  
                  
                  
                  
                        target = target.parentNode;
                  
                  
                      }
                  
                  
                    }
                  
                  
                
Потому что EventTarget !== HTMLElement
Может лучше переписать это без while и прочего, а обработчик повесить на APP-TASK? А то это на треш похоже
Обсуждают сегодня