我有一個這樣的打字稿物件
const playlist: { tracks: Array<Track> } = { tracks: new Array<Track>() };
這是Track界面
interface Track {
title?: string;
album?: string;
artists?: string;
duration?: string;
explicit?: boolean;
url?: string;
}
我正在嘗試將資料從
Buth我嘗試列印playlist.tracks用console.log(this.playlist.tracks);,它的列印一個空陣列

為什么我不能訪問物件的tracks屬性playlist?我如何訪問此屬性?有什么解決辦法嗎?
uj5u.com熱心網友回復:
嘗試這個 :
console.log(this.playlist['tracks']);
如果你想使用 likethis.playlist.tracks你必須為播放串列宣告一個介面:
interface PlayList{
tracks:Track[]
}
uj5u.com熱心網友回復:
也許嘗試在訂閱中列印它。
.subscribe(data => {
for (const item of data.items) {
const track: Track = this.helperService.trackApiObject2TrackObject(item.track);
this.playlist.tracks.push(track);
}
console.log([...this.playlist.tracks])
});
// printing outside subscription will most likely give an empty array
雖然一般來說你會想要一些反應性的東西
tracks$ = this.http.get<WritableTrackList>(endpointX).pipe(map(trackApiObject2TrackObject));
然后在模板中
<ng-template ngFor let-track[ngForOf]="tracks$| async">
<app-track [track]></app-track>
</ng-template>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322501.html
標籤:javascript 有角的 打字稿 发现
上一篇:不支持的關鍵詞。ASP.NETMVC應用程式中的'port'錯誤
下一篇:如何防止用戶滾動超過某個點?
