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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- typeof ความเท่ากัน และการจำกัดชนิดข้อมูลด้วยค่าจริงเท็จ
- in, instanceof และยูเนียนแบบจำแนก
- การตรวจสอบความครบถ้วนด้วย never (เบื้องต้น)