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.