по определенному полю, либо дефолтный объект, пробую делать это так:
                  
                  
                            const publicResponse: NewTicketResponse = this.newTicket.ticketResponse.find(res => res.type === 'Public')
                  
                  
                            ? this.newTicket.ticketResponse.find(res => res.type === 'Public')
                  
                  
                            : {text: '', type: 'Public'}
                  
                  
                  или даже пробовал так
                  
                  
                          let publicResponse: NewTicketResponse
                  
                  
                          if (this.newTicket.ticketResponse.find(res => res.type === 'Public')) {
                  
                  
                            publicResponse = this.newTicket.ticketResponse.find<NewTicketResponse>(res => res.type === 'Public')
                  
                  
                          } else {
                  
                  
                            publicResponse = {text: '', type: 'Public'}
                  
                  
                          }
                  
                  
                  Метод массива find возвращает либо найденную сущность, либо undefined, даже когда я делаю проверку условием, что сущность найдена, то компилятор все равно считает, что там может быть undefined - почему так и как правильно?
                  
                  
                
TypeScript не знает, что метод find каждый раз возвращает один и тот же результат. Сделай так: let publicResponse = this.newTicket.ticketResponse.find(res => res.type === 'Public'); if (publicResponse) { publicResponse = {text: '', type: 'Public'} }
Обсуждают сегодня