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 Recordyanında başlığı Haritalanmış Türleri altında Readonly, Partialve Pickonun 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üKbir amacı var ...KJenerik, nesnede olmayan ek anahtarları yasaklıyor muKyoksa bunlara izin veriyor mu ve sadece özelliklerinin dönüştürülmediğini gösteriyorTmu?Verilen örnekle:
type ThreeStringProps = Record<'prop1' | 'prop2' | 'prop3', string>
Bu tam olarak aynı mı ?:
type ThreeStringProps = {prop1: string, prop2: string, prop3: string}