2016-09-21 35 views
10

Aşağıdaki Metin Örneğini inceleyin. İlk satır bir hatayla sonuçlanır: 'undefined [], [string]' türüne atanamaz. Son iki satır derleme yapar.Dize [] ve [dize] arasındaki fark

let givesAnError: [string] = []; 
let isOK: string[] = []; 
let isAlsoOK: [string] = ["foo"]; 

nasıl daktilo türü tanımı [string] yorumlama var mı?

cevap

12

birinci (givesAnError) ve son (isAlsoOK) are tuples ve ikinci (isOK) bir dizidir.

let a: string[]; 
let b: boolean[]; 
let c: any[]; 

Fakat küpe ile farklı türde (ve sabit bir uzunluğa) sahip olabilir: Dizilerin senin elemanların tümü ile

aynı tipte olduğu Yani

let a: [string, boolean, number]; 
let b: [any, any, string]; 

:

a = ["str1", true, 4]; // fine 
b = [true, 3, "str"]; // fine 

Ancak:

a = [4, true, 3]; // not fine as the first element is not a string 
b = [true, 3]; // not fine because b has only two elements instead of 3 

Javascript çıktısının her zaman dizileri kullanacağını anlamak önemlidir, çünkü js'de tuple diye bir şey yoktur.
Ancak derleme zamanı için yararlıdır.