В моем угловом проекте я сохранил массив точек данных в локальном хранилище.
Для данных я создал такой класс:
export class Datapoint {
id: number;
name: string;
// ... some more properties.
constructor(){
}
public getDescription() {
// ... logic
}
// ... more functions
}
Теперь я извлекаю массив излокальное хранилище и анализирует его обратно из строки.
const dpList = JSON.parse(localStorage.getItem('datapoints'));
Поскольку 'dpList' имеет тип 'Object', я делаю утверждение типа для моего типа 'Datapoint'.
const datapoints: Datapoint[] = [];
public someFunction(): Datapoint[] {
// Get the stringified objects from the local storage.
const dpList = JSON.parse(localStorage.getItem('datapoints'));
// Iterate through the array and push to this.datapoints.
dpList.forEach(dp => {
const asserted_dp: Datapoint = (dp as Datapoint);
this.datapoints.push(asserted_dp);
});
}
Но asserted_dp находится после утверждения типа типа Object, а не Datapoint, как я ожидал.И поэтому я не могу получить доступ к функциям типа Datapoint, потому что свойство proto не имеет информации о них.
Как заставить работать утверждение типа?
Заранее спасибо!