ตัวปรับแต่งในชนิดแมป: readonly และ ?
เพิ่มหรือลบตัวปรับแต่งด้วย +/- ในชนิดแมป
ตัวปรับแต่งในชนิดแมป: readonly และ ? เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
ยินดีต้อนรับ
การเพิ่มตัวปรับแต่งด้วย +
type Readonly<T> = { +readonly [K in keyof T]: T[K] }; // + is implicit
type Optional<T> = { [K in keyof T]+?: T[K] };การนำ readonly ออกด้วย -
type Mutable<T> = { -readonly [K in keyof T]: T[K] };
const mutableUser: Mutable<Readonly<User>> = { id: 1, name: 'Alice' };
mutableUser.id = 2; // OK nowการนำ ? ออกด้วย -
type Required<T> = { [K in keyof T]-?: T[K] };
// Now all optional properties become requiredการรวม - และ -?
type Concrete<T> = { -readonly [K in keyof T]-?: T[K] };Partial และ Required เป็นสิ่งตรงข้ามกัน
// From TypeScript lib:
type Partial<T> = { [K in keyof T]?: T[K] }; // adds ?
type Required<T> = { [K in keyof T]-?: T[K] }; // removes ?การคงตัวปรับแต่งไว้ตามค่าเริ่มต้น
interface User { readonly id: number; name?: string; }
type Copy<T> = { [K in keyof T]: T[K] };
type C = Copy<User>; // readonly id preserved, name? preservedการใช้งานจริง: ประเภท Patch
type Patch<T> = { -readonly [K in keyof T]?: T[K] };DeepReadonly
type DeepReadonly<T> = {
readonly [K in keyof T]: T[K] extends object ? DeepReadonly<T[K]> : T[K]
};DeepPartial
type DeepPartial<T> = {
[K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K]
};ตารางการรวมตัวปรับแต่ง
ตรวจสอบความเข้าใจ
สรุป
คำถามที่พบบ่อย
บทเรียน “ตัวปรับแต่งในชนิดแมป: readonly และ ?” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวปรับแต่งในชนิดแมป: readonly และ ?” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวปรับแต่งในชนิดแมป: readonly และ ?”
เพิ่มหรือลบตัวปรับแต่งด้วย +/- ในชนิดแมป คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ตัวปรับแต่งในชนิดแมป: readonly และ ?” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม
ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิดแมป: การแปลงชนิดออบเจ็กต์
- ตัวปรับแต่งในชนิดแมป: readonly และ ?
- ชนิดลิเทอรัลแม่แบบ: รูปแบบข้อความ
- การเปลี่ยนชื่อคีย์ด้วย as ในชนิดแมป