Dizin imza tanımlayıcısı ne yapar?Yazı tipinde, dizin imza kimliği nedir?
interface IIndex {
[something: string]: any;
}
Tekrar "bir şey" kullanan herkes nerede olur?
interface IIndex {
[string]: any;
}
Dizin imza tanımlayıcısı ne yapar?Yazı tipinde, dizin imza kimliği nedir?
interface IIndex {
[something: string]: any;
}
Tekrar "bir şey" kullanan herkes nerede olur?
interface IIndex {
[string]: any;
}
Benim tahminim bu JavaScript tutarlılık ve yakınlık nedeniyle olduğunu olacaktır:
Veya başka bir deyişle
, neden sadece sözdizimi değildir. (hatta arayüzleri içinde) yöntemi argümanlar isim yaygındır Tıpkı, TS yöntemleri, yapıcılar, işlevler ve Dizinleyicilere tüm argümanlar name: type
veya name
(name: any
anlamında) formatında olmalıdır. (Hikayenin sürümünü basitleştirilmiş ama beni almaya eminim) isim ve tipleri daktilo farklı ad yaşamak beri forma string
bir argüman belirsiz olacaktır
. TypeScript'in misyonunun JavaScript'e yakın kalmak olduğunu unutmayın, bu nedenle yukarıdakileri string
türünde bir argüman olarak yorumlamak kabul edilemez olur ve gerçekten de string: any
'a denktir. sadece tip string
veya number
olabilir, çünkü indeksleyiciler, bir özel durum olabilir ise
Bundan başka, bu durum her zaman böyle olmamıştır (TS 0.8 any
izin verilir), bu nedenle başka bir neden 0.9 göç kolaylaştırmak için olabilir.
"Bir şey", yalnızca türünün yerine sözlüğü aramak için gerçek anahtarı belgeler. Ancak, varsayılan bir "anahtar" adı muhtemelen% 99 oranında çalışmalıdır ... Bazı durumlarda (örneğin, '' [styleName: string]: string''), özel bir adın daha fazla dokümantasyon sağlayabileceği durumlar vardır. –