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

Readonly, Exclude, Extract, NonNullable

ประยุกต์ใช้ชนิดอรรถประโยชน์เพิ่มเติมเพื่อความไม่เปลี่ยนแปลงและการกรอง

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

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

ไลบรารีมาตรฐานของ TypeScript มีประเภทเครื่องมืออีกหลายประเภทนอกเหนือจาก Partial, Required, Pick และ Omit บทเรียนนี้ครอบคลุม Readonly, Exclude, Extract และ NonNullable

Readonly<T>

ทำให้คุณสมบัติทั้งหมดของ T เป็นแบบอ่านอย่างเดียว ป้องกันการกำหนดค่าคุณสมบัติใหม่หลังจากสร้างแล้ว
interface Config { host: string; port: number; }
const cfg: Readonly<Config> = { host: 'localhost', port: 3000 };
// cfg.host = 'remote'; // Error!

Exclude<T, U>

ลบสมาชิกทั้งหมดจากยูเนียน T ที่สามารถกำหนดให้กับ U ได้
type Status = 'pending' | 'active' | 'banned' | 'deleted';
type ActiveStatus = Exclude<Status, 'banned' | 'deleted'>;
// 'pending' | 'active'

Extract<T, U>

เก็บเฉพาะสมาชิกของยูเนียน T ที่สามารถกำหนดให้กับ U ได้ ซึ่งเป็นการทำงานตรงข้ามกับ Exclude
type StringOrNumber = string | number | boolean;
type JustStrNum = Extract<StringOrNumber, string | number>;
// string | number

NonNullable<T>

ลบ null และ undefined ออกจาก T
type MaybeString = string | null | undefined;
type DefinitelyString = NonNullable<MaybeString>; // string

ReturnType<T>

ดึงประเภทค่าที่ส่งคืนของประเภทฟังก์ชัน T
function fetchUser() { return { id: 1, name: 'Alice' }; }
type User = ReturnType<typeof fetchUser>; // { id: number; name: string }

Parameters<T>

ดึงประเภทพารามิเตอร์ของฟังก์ชันออกมาเป็นทูเพิล
function add(a: number, b: number): number { return a + b; }
type AddParams = Parameters<typeof add>; // [number, number]

InstanceType<T>

รับประเภทอินสแตนซ์ที่สร้างโดยประเภทฟังก์ชันตัวสร้าง
class HttpClient { get(url: string) { return fetch(url); } }
type Client = InstanceType<typeof HttpClient>; // HttpClient

Awaited<T>

คลายประเภท Promise ที่ซ้อนกัน
type A = Awaited<Promise<string>>;          // string
type B = Awaited<Promise<Promise<number>>>;  // number

การใช้ประเภทเครื่องมือหลายประเภทร่วมกัน

เชื่อมประเภทเครื่องมือเข้าด้วยกันเพื่อแปลงประเภทที่ซับซ้อน
type SafeInput<T> = Readonly<Partial<NonNullable<T>>>;

ประเภทเครื่องมือเป็นเพียงนามแฝงประเภท

ประเภทเครื่องมือในตัวทุกประเภทสร้างขึ้นโดยใช้ประเภทแบบแมป ประเภทแบบมีเงื่อนไข และ infer คุณสามารถสร้างประเภทของคุณเองได้

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

`Exclude<'a' | 'b' | 'c', 'b'>` สร้างอะไร

สรุปทบทวน

Readonly ป้องกันการเปลี่ยนแปลงค่า Exclude ลบสมาชิกจากยูเนียน Extract เก็บสมาชิกที่ตรงกัน NonNullable ลบค่าที่อาจเป็น null หรือ undefined ส่วน ReturnType, Parameters และ InstanceType ดึงข้อมูลประเภทของฟังก์ชันและคลาส

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

บทเรียน “Readonly, Exclude, Extract, NonNullable” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “Readonly, Exclude, Extract, NonNullable”

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

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

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

บทเรียน “Readonly, Exclude, Extract, NonNullable” ใช้เวลานานแค่ไหน

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

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

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

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

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