2013-04-07 14 views
13

W TypeScript, jaka jest różnica między Array i any[]? Czy tablica odwołuje się do tablic o dynamicznym rozmiarze (oczywiście podczas kompilacji) i any[] odnosi się do tablic o rozmiarach statycznych przekazanych jako argumenty i wywnioskowanych przez kompilator? Ponieważ obecnie, gdy mam funkcji, takich jak:Tablica znaków i inne []

mergeArrays(arr1 : Array, arr2 : Array); 

Podczas wywołania tej funkcji z danych statycznych, maszynopis wykorzystuje tablicę określonego typu (type[]).

mergeArrays([true, false], [1, 2]); 
//   bool[]   number[] 

Czy są jakieś różnice w czasie kompilacji między 2? Kiedy używam any[] i kiedy używam Array? Czasami definiowania vars z Array ..

var info:Array; 

..show błędy jak "nie można przekonwertować dowolny [] [], aby Array", gdy ustawienie następująco:

info = [[], []]; 

Odpowiedz

8

sekcja Spec 3.5.4 określa ich związek :

typ macierzy formy ElementType[] jest równoważny typ obiektu z podpisem indeksu [index: number]: ElementType także zestaw elementów równoważnych globalnego ścią interfejsu pe Array gdzie wszystkie wystąpienia typu magicznego _element są zastępowane przez ElementType.

Nie mogąc przypisać [[], []] lub [] do Array jest błąd.

W języku TypeScript nie ma pojęcia o "wielkości wielkości statystycznej". Wszyscy mówią o tej samej podstawowej tablicy JavaScript (która jest dynamicznie zwymiarowana):

var x = [1, 2]; 
x.push(3); 
x[13] = 5; 
Powiązane problemy