อะไรRecord<K, T>หมายถึงใน typescript?
typescript 2.1 แนะนำRecordประเภทที่อธิบายไว้ในตัวอย่าง:
// 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>
และประเภทสินค้าทุกประเภทหน้ากล่าวRecordภายใต้ประเภทแมปมุ่งหน้าไปข้างReadonly, PartialและPickในสิ่งที่ดูเหมือนจะเป็นความหมายของมัน
type Record<K extends string, T> = { [P in K]: T; }
อ่านอย่างเดียวบางส่วนและเลือกเป็น homomorphic ในขณะที่บันทึกไม่ได้ เงื่อนงำหนึ่งที่ Record ไม่ใช่ homomorphic คือมันไม่ใช้ประเภทอินพุตเพื่อคัดลอกคุณสมบัติจาก:
type ThreeStringProps = Record<'prop1' | 'prop2' | 'prop3', string>
และนั่นคือมัน นอกจากราคาข้างต้นแล้วไม่มีการกล่าวถึงRecordในtypescriptlang.orgอีก
คำถาม
ใครสามารถให้คำจำกัดความง่ายๆว่าอะไร
Recordคืออะไร?เป็น
Record<K,T>เพียงวิธีการพูดว่า "คุณสมบัติทั้งหมดในวัตถุนี้จะมีประเภทT"? อาจไม่ได้คุณสมบัติทั้งหมดเนื่องจากKมีวัตถุประสงค์บางอย่าง ...ไม่
Kคีย์เพิ่มเติมทั่วไปห้ามบนวัตถุที่ไม่ได้Kหรือไม่ได้ช่วยให้พวกเขาและเพียงแค่ระบุว่าคุณสมบัติของพวกเขาจะไม่เปลี่ยนT?ด้วยตัวอย่างที่กำหนด:
type ThreeStringProps = Record<'prop1' | 'prop2' | 'prop3', string>
มันเหมือนกับตรงนี้ไหม:
type ThreeStringProps = {prop1: string, prop2: string, prop3: string}