javascript - js/ts dizisinde “any[]” ne anlama geliyor?


Şu anda Angular2 öğreniyorum. Derste, verileri önce "any" dizisine kaydetmem gerektiğini okudum ve bundan sonra örnekte şu şekilde bir kod vardı:

import { Component } from '@angular/core';

import { GithubService } from '../../services/github.service';

@Component({
  selector: 'profile',
  template: `<h1>Profile Component</h1>`,
})
export class ProfileComponent  {
  user:any[];

  constructor(private _githubService:GithubService){
    // this._githubService.getUser().subscribe(user => {console.log(user)});
    this._githubService.getUser().subscribe(user => {
       this.user = user;
    });
  }
}

user:any[]; ne anlama geliyor? Bunu Google’da, GitHub’da ve benzer yerlerde aramaya çalıştım ama hiçbir şey bulamadım. Ne okuyacağımı bile bilmiyorum.

Cevap #1

İlk bilinmesi gereken şey, any[]'in yalnızca Typescript'te geçerli bir değişken bildirimi olduğudur, Javascript'te değil.

Bu iki parçalı bir bildirgedir - [], Typescript'te bir değerler dizisi bildirmek için kullanılır. any, dizideki öğelerin herhangi bir türde olabileceğini belirtmek için kullanılır. Buna karşılık, diziyi yalnızca tek bir geçerli türle sınırlayabilirsiniz. Örneğin, string[] bir string nesneleri dizisi bildirir. Typescript derleyicisi daha sonra yalnızca string nesnelerini diziye eklediğinizden emin olur.

Cevap #2

user: any; değişken türü olarak string, number, object, boolean vb. saklayabileceğimiz anlamına gelir.

user: any[]; demek ki user bir dizi olmalı ve dizinin elemanları string, sayı, nesne, boolean vb. türlerde olabilir.