11 คะแนน โดย kakasoo 2025-03-13 | 10 ความคิดเห็น | แชร์ทาง WhatsApp

DeepStrictTypes คือชุด utility types สำหรับ TypeScript ที่สร้างขึ้นมาเพื่อให้จัดการอ็อบเจ็กต์แบบซ้อนกันได้อย่างปลอดภัยและสะดวกยิ่งขึ้น

เมื่อใช้ Omit หรือ Pick แบบเดิม มักจะจัดการพร็อพเพอร์ตีที่อยู่ลึกลงไปได้ไม่ค่อยสะอาดนัก แต่ถ้าใช้ DeepStrictOmit และ DeepStrictPick ก็จะสามารถเลือกเฉพาะส่วนที่ต้องการออกมาได้อย่างแม่นยำ

ยกตัวอย่างเช่น ใน type { user: { name: string; age: number } } ถ้าใช้ DeepStrictOmit<Example, 'user.name'> ก็จะถูกแปลงอย่างถูกต้องเป็น { user: { age: number } } ได้ ส่วนถ้าใช้ DeepStrictPick<Example, 'user.name'> ก็จะเหลือไว้เฉพาะส่วนที่จำเป็นในรูปแบบ { user: { name: string } }

สิ่งนี้มีประโยชน์เพราะว่า
✔️ เมื่อต้องการกรองเฉพาะบางฟิลด์จาก API response
✔️ เมื่อต้องการเก็บไว้เฉพาะส่วนที่ต้องการจากอ็อบเจ็กต์แบบซ้อนกัน

ยังได้เพิ่ม runtime utilities แบบทดลองอย่าง deepStrictObjectKeys, deepStrictAssert เข้ามาด้วย

ลองใช้งานดูแล้วส่งฟีดแบ็กมาได้เลยนะครับ/ค่ะ! ความสนใจที่มีต่อโอเพนซอร์สคือกำลังใจสำคัญของผู้พัฒนา!

10 ความคิดเห็น

 
metis041 2025-03-14

TypeScript นี่สุดยอดเสมอ

 
kakasoo 2025-03-14

ขอบคุณที่คุณมองเห็นความยอดเยี่ยมของ TypeScript

 
kakasoo 2025-03-14

ขอบคุณ!

 
softer 2025-03-14

กดไลก์

 
kakasoo 2025-03-14

ขอบคุณสำหรับการกดไลก์และแนะนำครับ

 
sunrabbit 2025-03-13

ไม่แน่ใจว่าจะมีคนที่ใช้ประเภทข้อมูลหนักขนาดนี้จริงไหม
เลยเริ่มสงสัยว่าเคสการใช้งานจริงเป็นแบบไหน

 
kakasoo 2025-03-13

ผมเคยใช้มันบ่อยตอนทำงานในโดเมนโฆษณา... :)
Facebook, Google... ไม่ว่าอย่างไรก็ตาม สุดท้ายแล้วโดเมนโฆษณาก็แตกต่างกันแค่นิดหน่อย และสามารถทำให้อยู่ในรูปนามธรรมด้วยประเภทที่แทบจะคล้ายกันได้ จึงมักใช้มันตอนรวมบริการที่ต่างกันเข้าเป็นโดเมนเดียวกัน

 
wogns3623 2025-03-14

ดูเหมือนว่ามักจะใช้งานกันบ่อยในลักษณะนั้นเวลานำชนิดข้อมูลเรคคอร์ดจากฐานข้อมูลบนเซิร์ฟเวอร์มาแปรรูปไปมา

 
kakasoo 2025-03-14

ใช่ครับ จริง ๆ แล้วกับฝั่งฟรอนต์เอนด์ก็มักจะไม่ได้รับความเห็นพ้องมากนักครับ