Как инициализировать propertiesArray как массив

Ошибка: src/app/services/trades.service.ts:18:32 — ошибка TS7053: Элемент неявно имеет тип «любой», поскольку выражение типа «строка» не может использоваться для индексации типа «Объект». Не найдена подпись индекса с параметром типа "строка" для типа "Объект".

18           propertiesArray.push(data[id]);

getAllProperties(){
return this.http.get('data/properties.json').pipe(
  map(data => {
    const propertiesArray: Array<any> = [];
    for (const id in data) {
      if (data.hasOwnProperty(id)){


      propertiesArray.push(data[id]);


    }
    }
    return propertiesArray;
  })
);

}

Не могли бы вы опубликовать пример содержания data/properties.json?

Norbert Bartko 15.12.2020 15:24

Что ты пытаешься сделать? Может быть, вы ищете Object.keys() вместо этого? map(data => Object.keys(data))

Salmin Skenderovic 15.12.2020 15:25

[ { "Идентификатор": 1, "Имя": "Хосе", "Работа": "Парикмахер", "Зарплата": 1000}, { "Идентификатор": 2, "Имя": "Андрес", "Работа": «Парикмахер», «Зарплата»: 1000 }, { «Идентификатор»: 3, «Имя»: «Хуан», «Работа»: «Парикмахер», «Зарплата»: 1000 }, { «Идентификатор»: 4, «Имя ":"Пабло", "Работа":"Парикмахер", "Зарплата":1000}, { "Идентификатор":5, "Имя":"Педро", "Работа":"Парикмахер", "Зарплата":1000} , { "Идентификатор": 6, "Имя": "Марсело", "Работа": "Парикмахер", "Зарплата": 1000 } ]

Mark Gubac 15.12.2020 15:31

я пытаюсь для этих данных

Mark Gubac 15.12.2020 15:32
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
4
150
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда ваши данные всегда в одном и том же формате, вы можете написать что-то вроде этого

// First you define your own interface (make sure its outside of your class)
export interface IProperties {
  Id: number;
  Name: string;
  Salary: number;
}

// Then you map your `data:any` to `data:IProperties[]`
public getAllProperties(): Observable<IProperties[]> {
    return this.http
      .get('data/properties.json')
      .pipe(
        map(data => data as IProperties[])
      );
}

Другие вопросы по теме