Ошибка: 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;
})
);
}
Что ты пытаешься сделать? Может быть, вы ищете Object.keys() вместо этого? map(data => Object.keys(data))
[ { "Идентификатор": 1, "Имя": "Хосе", "Работа": "Парикмахер", "Зарплата": 1000}, { "Идентификатор": 2, "Имя": "Андрес", "Работа": «Парикмахер», «Зарплата»: 1000 }, { «Идентификатор»: 3, «Имя»: «Хуан», «Работа»: «Парикмахер», «Зарплата»: 1000 }, { «Идентификатор»: 4, «Имя ":"Пабло", "Работа":"Парикмахер", "Зарплата":1000}, { "Идентификатор":5, "Имя":"Педро", "Работа":"Парикмахер", "Зарплата":1000} , { "Идентификатор": 6, "Имя": "Марсело", "Работа": "Парикмахер", "Зарплата": 1000 } ]
я пытаюсь для этих данных
Когда ваши данные всегда в одном и том же формате, вы можете написать что-то вроде этого
// 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[])
);
}
Не могли бы вы опубликовать пример содержания
data/properties.json
?