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

การอนุมานชนิดและ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. ชนิดข้อมูลพื้นฐานและการระบุชนิด
  2. การอนุมานชนิดและ any เทียบกับ unknown
  3. ชนิดยูเนียนและชนิดลิเทอรัล (บทนำการจำกัดชนิดเบื้องต้น)
← กลับไปที่ TypeScript Academy