Record<K, T>
Daktilo Yazısı ne anlama geliyor?
Typcript 2.1 Record
, bir örnekte açıklayan türü tanıttı :
// For every properties K of type T, transform it to U function mapObject<K extends string, T, U>(obj: Record<K, T>, f: (x: T) => U): Record<K, U>
Ve Gelişmiş Çeşitleri sayfa bahseder Record
yanında başlığı Haritalanmış Türleri altında Readonly
, Partial
ve Pick
onun tanımı gibi görünen de,:
type Record<K extends string, T> = { [P in K]: T; }
Salt okunur, Kısmi ve Seçim homomorfikken, Kayıt değildir. Record'un homomorfik olmadığına dair bir ipucu, özellikleri kopyalamak için bir girdi türü almamasıdır:
type ThreeStringProps = Record<'prop1' | 'prop2' | 'prop3', string>
Ve bu kadar. Yukarıdaki alıntıların yanı sıra, typescriptlang.orgRecord
üzerinde başka bir söz yoktur .
Sorular
Birisi neyin basit bir tanımını verebilir
Record
?Mı
Record<K,T>
sadece "Bu nesne üzerindeki tüm özelliklerini tip olacak demenin bir yoluT
"? Muhtemelen tüm özellikler değil , çünküK
bir amacı var ...K
Jenerik, nesnede olmayan ek anahtarları yasaklıyor muK
yoksa bunlara izin veriyor mu ve sadece özelliklerinin dönüştürülmediğini gösteriyorT
mu?Verilen örnekle:
type ThreeStringProps = Record<'prop1' | 'prop2' | 'prop3', string>
Bu tam olarak aynı mı ?:
type ThreeStringProps = {prop1: string, prop2: string, prop3: string}