Я обновил Angular с 4 до 9 и теперь, после того, как смог заставить его работать, все еще получаю некоторые ошибки, которые я не могу устранить.
Мой код:
this.getTrades().then( ( trades ) => {
console.log( trades );
this.trades = new MatTableDataSource<Trade>( trades );
});
getTrades() {
let promise = new Promise( ( resolve, reject ) => {
this.dataService.getTrades().subscribe( ( trades ) => {
resolve( trades );
});
});
return promise;
}
export interface Trade {
ID: number;
UserID: number;
DateTime: Date;
Exchange: Exchange;
BaseCoin: Coin;
MarketCoin: MarketCoin;
Price: number;
Amount: number;
Total: number;
Last: number;
Type: Type;
Status: Status;
Symbol: string;
}
Источник данных getTrades ():
getTrades() {
return this.http.get( 'http://localhost:8888/currencytracker-api/json/get-trades.php' ).pipe(
map( res => res.json() ));
}
getTrades () возвращает массив json со следующими данными:
ID: 1
UserID: 1
DateTime: "2017-12-25T00:00:00+0000"
Exchange: {ID: 1, Title: "BitTrex"}
BaseCoin: {ID: 718, Abbr: "BTC"}
MarketCoin: {ID: 743, Abbr: "XVG"}
Price: "0.000013470000"
Amount: "1019.014328640000"
Total: 0.0137261230067808
Last: "0.000005470000"
Type: {ID: 1, Title: "Limit Buy"}
Status: {ID: 2, Title: "Closed"}
Symbol: "Ƀ"
Это ошибка, которую я получаю:
ОШИБКА в src / app / components / trades / trades.component.ts: 100: 68 - ошибка TS2345: Аргумент типа 'unknown' не может быть присвоен параметру типа 'Trade []' , Тип '{}' отсутствует следующие свойства из типа 'Trade []': длина, поп, pu sh, concat и еще 26.
this.trades = new MatTableDataSource (trades);
Любая помощь в понимании этой ошибки и ее устранении будет очень признательна. Спасибо.
Обновление
Когда я объявил переменную trades, я сделал это следующим образом:
Trade[]
Вместо этого я объявил это как:
MatTableDataSource<Trade>