การอนุมานชนิดและ any เทียบกับ unknown
ดูวิธีที่ TypeScript อนุมานชนิดข้อมูล ความแตกต่างระหว่าง any กับ unknown และผลของ const ต่อการอนุมานชนิด
การอนุมานชนิดและ any เทียบกับ unknown เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
บทนำ
เป้าหมาย: เรียนรู้วิธีที่ TS อนุมานชนิดข้อมูลจากค่า และเปรียบเทียบ any กับ unknown เพื่อความปลอดภัย
การอนุมานด้วย let และ const
การอนุมาน: let อนุมานเป็นชนิดกว้าง (number) ส่วน const อนุมานเป็นชนิดลิเทอรัล ("TS")
let count = 5;
// inferred number
const title = "TS";
// inferred literal type "TS"
console.log(count, title);as const
as const จะคงชนิดลิเทอรัลไว้ และทำให้ค่าเป็นแบบอ่านได้อย่างเดียว มีประโยชน์สำหรับ enum และอาร์เรย์การตั้งค่า
const colors = ["red", "green", "blue"] as const;
// type is readonly ["red","green","blue"]
console.log(colors);ชนิด any
any จะปิดการตรวจสอบชนิดข้อมูล ทำให้มีอิสระมากขึ้น แต่สูญเสียความปลอดภัย เพราะข้อผิดพลาดจะผ่านการคอมไพล์และทำให้โปรแกรมขัดข้องขณะทำงาน
let flexible: any = 42;
lexible = "hello";
flexible.nonexistentMethod();
// no error at compile time!ชนิด unknown
unknown บังคับให้คุณตรวจสอบชนิดข้อมูลก่อนใช้งาน ปลอดภัยกว่า any เพราะคุณไม่สามารถเรียกใช้เมธอดโดยไม่ตรวจสอบได้
let input: unknown = "hello";
// Must narrow before use
if (typeof input === "string") {
console.log(input.toUpperCase());
}ควรใช้เมื่อใด
แนวทาง: ควรใช้การอนุมานกับตัวแปรส่วนใหญ่ ใช้การระบุชนิดอย่างชัดเจนเพื่อความเข้าใจที่ง่ายขึ้น หลีกเลี่ยง any และเลือกใช้ unknown เมื่อยังไม่ทราบชนิดข้อมูล
ตรวจสอบ any เทียบกับ unknown
ตรวจสอบอย่างรวดเร็ว: ความแตกต่างหลักระหว่าง any กับ unknown คืออะไร
ทบทวน
ทบทวน: TS อนุมานชนิดข้อมูลโดยอัตโนมัติ const จะจำกัดชนิดให้แคบลงเป็นค่าลิเทอรัล ส่วน as const จะตรึงค่าไว้ any ปิดความปลอดภัย ขณะที่ unknown บังคับให้ตรวจสอบ
คำถามที่พบบ่อย
บทเรียน “การอนุมานชนิดและ any เทียบกับ unknown” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การอนุมานชนิดและ any เทียบกับ unknown” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การอนุมานชนิดและ any เทียบกับ unknown”
ดูวิธีที่ TypeScript อนุมานชนิดข้อมูล ความแตกต่างระหว่าง any กับ unknown และผลของ const ต่อการอนุมานชนิด คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน
บทเรียน “การอนุมานชนิดและ any เทียบกับ unknown” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม
ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิดข้อมูลพื้นฐานและการระบุชนิด
- การอนุมานชนิดและ any เทียบกับ unknown
- ชนิดยูเนียนและชนิดลิเทอรัล (บทนำการจำกัดชนิดเบื้องต้น)