Свойство «описание» не существует для типа » {метка: строка; значение: строка; }»

#angular #typescript #sorting #response

Вопрос:

Я хочу отсортировать свои response.data , но у меня есть эта ошибка:

Свойство «описание» не существует для типа » {метка: строка; значение: строка; }».

 getItemsTypes(): Observablelt;OptionModel[]gt; {  const url = ApiUrlsConfig.risks.getItemsTypes();  return this.http.getlt;ResponseModellt;ItemsType[]gt;gt;(url).pipe(  map((response) =gt;  response.data.map((c) =gt; ({  label: c.description,  value: c.id  })).sort((a, b) =gt; a.description gt; b.description ? 1 : -1))  );  }  

Есть какие-нибудь идеи, пожалуйста? Как исправить эту ошибку?

Комментарии:

1. у вашего массива нет description свойства «есть только label «, и value именно поэтому вы получаете ошибку. На каком основании вы хотели бы отсортировать свой массив?

Ответ №1:

У вашего массива нет description свойства, есть только label свойство и value свойство, поэтому вы получаете ошибку.

В sort(a,b) функции a и b обратитесь к элементам массива.

Я думаю, вы хотите сортировать по длине описания. И вы назначаете description внутри label . Так что вы можете сделать вот так

 const url = ApiUrlsConfig.risks.getItemsTypes();  return this.http.getlt;ResponseModellt;ItemsType[]gt;gt;(url).pipe(  map((response) =gt;  response.data.map((c) =gt; ({  label: c.description,  value: c.id  })).sort((a, b) =gt; a.label - b.label))  );  }  

Комментарии:

1. Я хочу отсортировать их по алфавиту. Спасибо