0Pricing
TypeScript Academy · บทเรียน

Pick และ Omit: การเลือกพร็อพเพอร์ตี

สร้างชนิดย่อยโดยรวมหรือตัดคีย์ออก

Pick และ Omit: การเลือกพร็อพเพอร์ตี เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

Pick สร้างประเภทที่มีเฉพาะคุณสมบัติที่ระบุ ส่วน Omit สร้างประเภทที่ไม่มีคุณสมบัติที่ระบุ ทั้งสองเป็นเครื่องมือเสริมกันสำหรับกำหนดรูปแบบประเภทออบเจ็กต์

Pick<T, K>

เก็บเฉพาะคีย์ที่ระบุจาก T
interface User { id: number; name: string; email: string; role: string; }
type PublicUser = Pick<User, 'id' | 'name'>;
// { id: number; name: string }

Omit<T, K>

ลบคีย์ที่ระบุออกจาก T
type UserWithoutRole = Omit<User, 'role'>;
// { id: number; name: string; email: string }

Pick สำหรับโมเดลมุมมอง

ใช้ Pick เพื่อสร้างโมเดลมุมมองสำหรับการแสดงผลจากโมเดลข้อมูลฉบับเต็ม
type UserCard = Pick<User, 'name' | 'email'>;

Omit สำหรับ DTO การสร้าง

ใช้ Omit เพื่อสร้างประเภทข้อมูลนำเข้าที่ไม่รวมช่องข้อมูลที่สร้างโดยอัตโนมัติ
interface Post { id: number; title: string; content: string; createdAt: Date; }
type CreatePost = Omit<Post, 'id' | 'createdAt'>;
// { title: string; content: string }

การทำงานภายในของ Pick

Pick ใช้ประเภทแบบแมปที่จำกัดด้วยคีย์ของ K
type Pick<T, K extends keyof T> = { [P in K]: T[P] };

การทำงานภายในของ Omit

Omit รวม Pick กับ Exclude เพื่อเลือกคีย์ทั้งหมด ยกเว้นคีย์ที่ถูกละไว้
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;

Pick กับคีย์ยูเนียน

ส่งลิเทอรัลคีย์แบบยูเนียนให้กับ Pick
type MinimalUser = Pick<User, 'id' | 'email'>;

Omit กับหลายคีย์

ละเว้นหลายคีย์ได้พร้อมกัน
type SafeUser = Omit<User, 'password' | 'token' | 'internalId'>;

Pick กับเซตย่อยของอินเทอร์เฟซ

Pick สามารถนำกลับมาใช้กับหลายประเภทได้ ส่วนการกำหนดเซตย่อยของอินเทอร์เฟซใหม่ทำได้เพียงครั้งเดียว ให้ใช้ Pick เมื่อประเภทต้นทางอาจเปลี่ยนแปลง

การรวม Pick, Omit และ Partial

รวมประเภทเครื่องมือเพื่อสร้างรูปแบบการอัปเดตที่ซับซ้อน
type UpdatePost = Partial<Omit<Post, 'id' | 'createdAt'>>;
// Can update title and content, both optional

ตรวจสอบอย่างรวดเร็ว

ผลลัพธ์ของ `Pick` คืออะไร เมื่อกำหนด `interface User { id: number; name: string; email: string }`

สรุปทบทวน

Pick เก็บเฉพาะคุณสมบัติที่ระบุ ส่วน Omit ลบคุณสมบัติที่ระบุออก ใช้ทั้งสองเพื่อสร้างโมเดลมุมมอง DTO และประเภทสำหรับการอัปเดตโดยไม่ต้องทำซ้ำคำจำกัดความของอินเทอร์เฟซ

คำถามที่พบบ่อย

บทเรียน “Pick และ Omit: การเลือกพร็อพเพอร์ตี” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Pick และ Omit: การเลือกพร็อพเพอร์ตี” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Pick และ Omit: การเลือกพร็อพเพอร์ตี”

สร้างชนิดย่อยโดยรวมหรือตัดคีย์ออก คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “Pick และ Omit: การเลือกพร็อพเพอร์ตี” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม

ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Partial และ Required: การสลับสถานะเสริม
  2. Pick และ Omit: การเลือกพร็อพเพอร์ตี
  3. Record: การแมปคีย์กับชนิดค่า
  4. Readonly, Exclude, Extract, NonNullable
← กลับไปที่ TypeScript Academy