Utility Types
ขอทิ้งท้ายคอร์ส TypeScript 101 ด้วย Utility Types หรือ Type ตัวช่วยต่างๆ ที่ TypeScript มีให้ใช้งาน
Partial<Type>
Partial<Type>Partial<T> จะรับ Object Type และเปลี่ยน Property ทั้งหมดให้เป็น Optional เพื่อที่เราจะได้ใช้เฉพาะบาง Property ได้
interface Post {
title: string
body: string
imageUrl: string
}
type PostFields = Partial<Post>
// เหมีอนกันกับ
interface PostFields {
title?: string
body?: string
imageUrl?: string
}
function updatePost(post: Post, fields: PostFields) {
...
}
const post = { title: "...", body: "...", imageUrl: "..." }
// Update เฉพาะ Body ของ Post
const updatedPost = updatePost(post, { body: "..." }) ตัวอย่างนี้ใช้ประโยชน์จาก Partial<Post> เพื่อให้เวลาที่เราอัพเดตตัว Post โดยไม่ต้องใช้ Field ทั้งหมดก็ได้
Pick<Type,Keys>
Pick<Type,Keys>ใช้เพื่อ Pick (เลือก) เฉพาะ Key ของ Property มาเป็น Object Type ใหม่
Omit<Type,Keys>
Omit<Type,Keys>ตรงข้ามกับ Pick คือจะยกเว้น Keys ที่ระบุไว้
Record<Keys,Type>
Record<Keys,Type>สร้าง Object Type ด้วย Property ที่เป็น Keys และมี Value เป็นประเภทตาม Type
Parameters<FunctionType>
Parameters<FunctionType>ดึง Type ของ Parameters ออกมาจาก Function ออกมาเป็น Tuple (Array)
ReturnType<FunctionType>
ReturnType<FunctionType>ดึง Type ของค่า Return จาก Function
Utility Types ยังมีอีกหลายตัว ดูทั้งหมดได้จาก Official Docs ซึ่งจะช่วยให้เราใช้ประโยชน์จาก Type ที่มีอยู่แล้ว หรือ Import มาจาก Library ต่างๆ ได้โดยไม่ต้องกำหนด Generic Type ที่ซับซ้อนเองทั้งหมด
Last updated
Was this helpful?