Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

202
Views
problema con la propiedad del objeto de acceso en TypeScript angular

Tengo un objeto mecanografiado como este

 const playlist: { tracks: Array<Track> } = { tracks: new Array<Track>() };

Y esta es la interfaz de seguimiento

 interface Track { title?: string; album?: string; artists?: string; duration?: string; explicit?: boolean; url?: string; }

Estoy tratando de obtener datos de la API web de Spotify para mi objeto de playlist de reproducción como este

 for (let i = 1; i <= iterationCount; i++) { const endpointX = `${BASE_API_URL}playlists/${playlistId}/tracks?limit=${PLAYLIST_ITEM_LIMIT}&offset=${i}&fields=${fieldString}`; const subscription: Subscription = this.http.get<WritableTrackList>(endpointX).subscribe(data => { for (const item of data.items) { const track: Track = this.helperService.trackApiObject2TrackObject(item.track); this.playlist.tracks.push(track); } }); }

Cuando intento imprimir el objeto de la playlist de reproducción en la consola de javascript con console.log(this.playlist); , esta funcionando. ingrese la descripción de la imagen aquí

Pero trato de imprimir playlist.tracks con console.log(this.playlist.tracks); , imprime una matriz vacía

ingrese la descripción de la imagen aquí

¿Por qué no puedo acceder a la propiedad de tracks del objeto de playlist de reproducción? ¿Cómo puedo acceder a esta propiedad? ¿Alguna solución?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

prueba esto :

 console.log(this.playlist['tracks']);

si desea usar this.playlist.tracks , debe declarar una interfaz para la lista de reproducción:

 interface PlayList{ tracks:Track[] }
about 4 years ago · Juan Pablo Isaza Report

0

tal vez intente imprimirlo dentro de la suscripción.

 .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

aunque en general querrías algo reactivo

 tracks$ = this.http.get<WritableTrackList>(endpointX).pipe(map(trackApiObject2TrackObject));

entonces en la plantilla

 <ng-template ngFor let-track[ngForOf]="tracks$| async"> <app-track [track]></app-track> </ng-template>
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!