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

typeof ความเท่ากัน และการจำกัดชนิดข้อมูลด้วยค่าจริงเท็จ

ใช้ typeof การเปรียบเทียบแบบเท่ากันอย่างเคร่งครัด และค่าจริงเท็จเพื่อจำกัดชนิดข้อมูลยูเนียนโดยไม่ต้องแปลงชนิดข้อมูลอย่างไม่ปลอดภัย

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

บทนำ

เป้าหมาย: จำกัดชนิดข้อมูลยูเนียนที่กว้างให้เหลือชนิดข้อมูลที่แน่นอน โดยใช้ typeof ความเท่ากันอย่างเคร่งครัด และค่าความจริง ซึ่งช่วยให้เข้าถึงพร็อพเพอร์ตีและเมธอดได้อย่างปลอดภัย

การจำกัดชนิดข้อมูลด้วย typeof

typeof จำกัดชนิดข้อมูลพื้นฐานให้แคบลง ได้แก่ สตริง ตัวเลข บูลีน bigint symbol และ undefined ใช้เพื่อแยกกรณีต่าง ๆ ได้อย่างปลอดภัย

function printLen(x: string | number) {
  if (typeof x === "string") {
    console.log(x.length); // x is string
  } else {
    console.log(x.toFixed(2)); // x is number
  }
}

printLen("TS");
printLen(3.14);

ความเท่ากันอย่างเคร่งครัด

ควรใช้ ===/!== เพื่อจำกัดชนิดข้อมูลอย่างแม่นยำ หลีกเลี่ยง == ซึ่งจะบังคับแปลงชนิดข้อมูลและทำให้ทั้งผู้เขียนกับคอมไพเลอร์สับสน

function greet(x: string | null) {
  if (x !== null) {
    // x is string here
    console.log("Hello " + x.toUpperCase());
  } else {
    console.log("No name");
  }
}

greet("Ada");
greet(null);

การจำกัดชนิดข้อมูลด้วยค่าความจริง

ค่าความจริงก็ช่วยจำกัดชนิดข้อมูลได้เช่นกัน แต่ควรระวังว่า "" และ 0 เป็นค่าเท็จ แม้จะเป็นค่าที่ใช้ได้ก็ตาม ใช้การตรวจสอบอย่างเคร่งครัดเมื่อต้องแยกความแตกต่างระหว่างค่าเหล่านี้

function show(v: string | 0 | "" | null | undefined) {
  if (v) {
    // v is string here (non-empty)
    console.log("value:", v);
  } else {
    // v is "", 0, null, or undefined
    console.log("empty");
  }
}

show("ok");
show("");
show(0);

การรวมการตรวจสอบ

รวมการตรวจสอบหลายอย่างเพื่อป้องกันการเข้าถึงข้อมูลที่ซ้อนกัน สำหรับการควบคุมที่ละเอียดขึ้น ควรใช้ u !== null && u !== undefined โดยตรงเมื่อ 0/"" เป็นกรณีที่ใช้ได้

type MaybeUser = { name: string } | null | undefined;

function hi(u: MaybeUser) {
  if (u && u.name) {
    console.log("Hi " + u.name);
  } else {
    console.log("No user");
  }
}

hi({ name: "Lin" });
hi(null);

แนวทาง

แนวทาง:

  • ใช้ typeof กับชนิดข้อมูลพื้นฐาน
  • ใช้ ===/!== เพื่อหลีกเลี่ยงการบังคับแปลงชนิดข้อมูล
  • ค่าความจริงกระชับ แต่ควรหลีกเลี่ยงเมื่อสตริงว่างหรือศูนย์มีความหมาย

ตรวจสอบการจำกัดชนิดข้อมูล

ตรวจสอบอย่างรวดเร็ว: การตรวจสอบใดจำกัดค่าให้เป็นสตริงได้อย่างถูกต้อง

ทบทวน

ทบทวน: จำกัดชนิดข้อมูลด้วย typeof ความเท่ากันอย่างเคร่งครัด และค่าความจริง ควรใช้การตรวจสอบอย่างชัดเจนเมื่อ 0/"" เป็นค่าที่ใช้ได้

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

บทเรียน “typeof ความเท่ากัน และการจำกัดชนิดข้อมูลด้วยค่าจริงเท็จ” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “typeof ความเท่ากัน และการจำกัดชนิดข้อมูลด้วยค่าจริงเท็จ”

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

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

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

บทเรียน “typeof ความเท่ากัน และการจำกัดชนิดข้อมูลด้วยค่าจริงเท็จ” ใช้เวลานานแค่ไหน

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

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

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

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

  1. typeof ความเท่ากัน และการจำกัดชนิดข้อมูลด้วยค่าจริงเท็จ
  2. in, instanceof และยูเนียนแบบจำแนก
  3. การตรวจสอบความครบถ้วนด้วย never (เบื้องต้น)
← กลับไปที่ TypeScript Academy