𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗶𝗺𝗶𝘁𝗶𝘃𝗲 𝗗𝗮𝘁𝗮 𝗧𝘆𝗽𝗲𝘀
TypeScript ช่วยให้คุณจัดการวิธีการกำหนดข้อมูลให้กับตัวแปรได้ โดยมีสองวิธีหลักในการทำเช่นนี้
การกำหนดแบบ Explicit คุณระบุให้ TypeScript ทราบอย่างชัดเจนว่าค่าที่กำหนดนั้นเป็นประเภทใด ตัวอย่าง:
let str: string = "hello";การกำหนดแบบ Implicit TypeScript จะคาดเดาประเภทข้อมูลจากค่าที่กำหนด ซึ่งเรียกว่า inferred typing ตัวอย่าง:
let str = "hello";
แม้จะใช้การอนุมานประเภทข้อมูล (inferred typing) แต่ TypeScript ก็ยังช่วยปกป้องโค้ดของคุณ หากคุณพยายามเปลี่ยนจาก string เป็น number ตัว TypeScript จะแสดงข้อผิดพลาดขึ้นมา
ควรใช้การกำหนดแบบ Explicit เมื่อใด?
- เมื่อคุณประกาศตัวแปรโดยที่ยังไม่ได้กำหนดค่าในทันที
- สำหรับ input และ output ของฟังก์ชัน
- ภายใน object interfaces
- ภายใน classes
TypeScript ใช้ duck typing สำหรับ object ที่มีความซับซ้อน หาก object มีโครงสร้างที่ตรงตามที่กำหนด TypeScript จะใช้โครงสร้างนั้น และจะไม่ยอมให้คุณเพิ่ม property ใหม่ที่ไม่มีอยู่ในคำจำกัดความเดิม
ประเภทข้อมูลพื้นฐาน (primitive types) ของ JavaScript ใน TypeScript:
- number: รองรับจำนวนเต็ม, ทศนิยม, เลขฐานสิบหก, เลขฐานสอง และสัญกรณ์วิทยาศาสตร์
- bigint: ใช้สำหรับจำนวนเต็มที่มีค่าสูงมาก
- string: ลำดับของตัวอักษร
- boolean: true หรือ false
- symbol: ใช้สร้างค่าที่ไม่ซ้ำกัน (unique values)
- null: แทนค่าที่ว่างเปล่าหรือไม่ระบุค่า
- undefined: ตัวสำรองสำหรับตัวแปรที่ไม่มีค่า
หมายเหตุเกี่ยวกับ null และ undefined: หากคุณไม่ได้กำหนดประเภทข้อมูล ค่าเหล่านี้จะทำให้ตัวแปรสามารถเปลี่ยนเป็นประเภทใดก็ได้ แต่หากคุณกำหนดประเภทเป็น null หรือ undefined อย่างชัดเจน ตัวแปรนั้นก็จะคงอยู่เป็นประเภทดังกล่าวเท่านั้น
ที่มา: https://dev.to/jsha/introduction-to-typescript-javascript-primitive-data-types-49ok