รูปแบบการใช้ satisfies ในทางปฏิบัติ
ใช้ satisfies กับออบเจ็กต์การกำหนดค่าและตารางค้นหา
รูปแบบการใช้ satisfies ในทางปฏิบัติ เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
ตรวจสอบความถูกต้องของชุดสี
รูปแบบที่ใช้กันทั่วไปคือ satisfies Record<string, Color> สำหรับ palette โดยจะตรวจสอบค่าทุกค่าให้เป็นสีที่ถูกต้อง ขณะที่คีย์ยังคงตรงตามจริงเพื่อใช้กับการเติมข้อความอัตโนมัติ
type Color = "red" | "green" | "blue";
const palette = {
primary: "blue",
secondary: "green"
} satisfies Record<string, Color>;
console.log(palette.primary);ตรวจจับค่าของ palette ที่ไม่ถูกต้อง
หากค่าใดไม่ใช่ Color ที่ถูกต้อง satisfies จะแจ้งข้อผิดพลาด ขณะที่คีย์ยังคงมีชนิดที่ตรงตามจริง
type Color = "red" | "green" | "blue";
// const bad = { primary: "purple" } satisfies Record<string, Color>; // Error
const ok = { primary: "red" } satisfies Record<string, Color>;
console.log(ok.primary);คงการเติมข้อความอัตโนมัติสำหรับคีย์
เนื่องจากคีย์ที่อนุมานได้คือ "primary" | "secondary" โปรแกรมแก้ไขจึงเติมคีย์เหล่านี้โดยอัตโนมัติ ต่างจากการระบุชนิดด้วย Record แบบปกติซึ่งจะทำให้คีย์เฉพาะหายไป
type Color = "red" | "green" | "blue";
const palette = { primary: "red", accent: "blue" } satisfies Record<string, Color>;
// palette.<autocomplete: primary, accent>
console.log(palette.accent);ตรวจสอบความถูกต้องของแผนที่เส้นทาง
แผนที่เส้นทางก็ได้รับประโยชน์เช่นกัน โดยค่าต้องตรงกับโครงสร้างของตัวจัดการ ขณะที่ชื่อเส้นทางยังคงเป็นชื่อที่รู้จักสำหรับตัวช่วยการนำทาง
type Route = { method: "GET" | "POST"; path: string };
const routes = {
home: { method: "GET", path: "/" },
login: { method: "POST", path: "/login" }
} satisfies Record<string, Route>;
console.log(routes.login.method);การใช้ดัชนีในแผนที่
เมื่อคีย์ยังคงอยู่ คุณสามารถสร้างชนิดของชื่อเส้นทางที่ถูกต้องและใช้ดัชนีเข้าถึงชนิดของแผนที่ได้อย่างปลอดภัยตามชนิด
type Route = { method: string; path: string };
const routes = {
home: { method: "GET", path: "/" },
about: { method: "GET", path: "/about" }
} satisfies Record<string, Route>;
type RouteName = keyof typeof routes; // "home" | "about"
const pick: RouteName = "about";
console.log(routes[pick].path);config ที่มีค่าหลายรูปแบบและมีชนิดกำกับ
satisfies ใช้ได้แม้ค่าจะมีโครงสร้างแตกต่างกัน เพียงจำกัดด้วยชนิดยูเนียน แล้วค่าทุกค่าจะได้รับการตรวจสอบเทียบกับชนิดนั้น
type Setting = number | boolean | string;
const config = {
retries: 3,
verbose: true,
region: "eu"
} satisfies Record<string, Setting>;
console.log(config.retries, config.verbose);ตารางค้นหาแบบคล้ายอีนัม
สร้างตารางค้นหาที่ตรวจสอบเทียบกับชนิดของค่า พร้อมคงแต่ละรายการให้ตรงตามจริงสำหรับการใช้งานในภายหลัง
type Status = "active" | "inactive";
const userStatus = {
alice: "active",
bob: "inactive"
} satisfies Record<string, Status>;
const s: "active" = userStatus.alice;
console.log(s);ใช้คู่กับ as const
ใช้ as const ร่วมกับ satisfies เพื่อสร้างข้อมูลที่เปลี่ยนแปลงไม่ได้ในทุกระดับและผ่านการตรวจสอบความถูกต้อง โดย as const จะทำให้ข้อมูลไม่เปลี่ยนแปลง และ satisfies จะตรวจสอบข้อมูล
type Color = "red" | "blue";
const theme = {
primary: "red",
secondary: "blue"
} as const satisfies Record<string, Color>;
console.log(theme.primary);ตรวจสอบช่วงตัวเลขด้วยชนิด
คุณสามารถจำกัดค่าให้เป็นยูเนียนของลิเทอรัลตัวเลขเพื่อจำลองชุดตัวเลือกที่กำหนดตายตัว โดยตรวจสอบความถูกต้องตั้งแต่เวลานิยาม
type Level = 1 | 2 | 3;
const levels = {
easy: 1,
medium: 2,
hard: 3
} satisfies Record<string, Level>;
console.log(levels.hard);แผนที่แฟล็กฟีเจอร์
ตัวอย่าง config ของแฟล็กฟีเจอร์ที่ใช้งานได้จริง: คีย์คือชื่อแฟล็กที่เติมข้อความอัตโนมัติได้ และค่าคือบูลีนที่ satisfies ตรวจสอบความถูกต้อง
const flags = {
newDashboard: true,
betaSearch: false
} satisfies Record<string, boolean>;
type Flag = keyof typeof flags;
const f: Flag = "betaSearch";
console.log(flags[f]);เหตุใดรูปแบบนี้จึงโดดเด่น
ไม่ว่าจะเป็น palette เส้นทาง หรือ flags, satisfies Record<...> ให้ค่าที่ผ่านการตรวจสอบความถูกต้อง พร้อมคีย์และลิเทอรัลที่แม่นยำ จึงเป็นจุดสมดุลที่เหมาะสำหรับ config แบบมีชนิดในชีวิตประจำวัน
type Color = "red" | "green" | "blue";
const ui = { brand: "green", warn: "red" } satisfies Record<string, Color>;
console.log(Object.keys(ui).join(","));ตรวจสอบความเข้าใจอย่างรวดเร็ว: satisfies ในทางปฏิบัติ
ทดสอบความเข้าใจของคุณเกี่ยวกับรูปแบบ satisfies ในทางปฏิบัติ
ทบทวน: รูปแบบ satisfies ในทางปฏิบัติ
คุณได้นำ satisfies Record<string, Color> ไปใช้กับ palette, แผนที่เส้นทาง flags และตารางค้นหา โดยคงคีย์และลิเทอรัลที่ตรงตามจริงไว้เพื่อการเติมข้อความอัตโนมัติ พร้อมตรวจสอบความถูกต้องของทุกค่า
type Color = "red" | "blue";
const theme = { bg: "blue", fg: "red" } satisfies Record<string, Color>;
console.log(theme.bg, theme.fg);คำถามที่พบบ่อย
บทเรียน “รูปแบบการใช้ satisfies ในทางปฏิบัติ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “รูปแบบการใช้ satisfies ในทางปฏิบัติ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “รูปแบบการใช้ satisfies ในทางปฏิบัติ”
ใช้ satisfies กับออบเจ็กต์การกำหนดค่าและตารางค้นหา คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “รูปแบบการใช้ satisfies ในทางปฏิบัติ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม
ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เหตุใดจึงมี satisfies
- satisfies เทียบกับคำอธิบายชนิดข้อมูล
- satisfies เทียบกับการยืนยันด้วย as
- รูปแบบการใช้ satisfies ในทางปฏิบัติ