𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 𝗧𝘆𝗽𝗲𝘀 𝗗𝗲𝗺𝘆𝘀𝘁𝗶𝗳𝗶𝗲𝗱
TypeScript อาศัยระบบ Type การเชี่ยวชาญในเรื่องนี้คือก้าวแรกสู่การเขียนโค้ดที่มีคุณภาพยิ่งขึ้น
Basic Types
TypeScript ใช้ประเภทข้อมูลที่คล้ายกับ JavaScript primitives: • string: สำหรับข้อความ • number: สำหรับตัวเลขทั้งหมด (ทั้งจำนวนเต็มและทศนิยม) • boolean: สำหรับค่า true หรือ false
Type Inference
คุณไม่จำเป็นต้องเขียนระบุประเภทข้อมูลเสมอไป บ่อยครั้งที่ TypeScript จะคาดเดาประเภทข้อมูลจากค่าที่คุณกำหนดให้ ซึ่งเราเรียกว่าการอนุมาน (Inference)
กฎที่ดีคือ: • ปล่อยให้ TypeScript อนุมานประเภทข้อมูลสำหรับตัวแปรภายใน (local variables) • เขียนระบุประเภทข้อมูลให้ชัดเจนสำหรับพารามิเตอร์ของฟังก์ชันและประเภทของค่าที่ส่งกลับ (return types)
Arrays and Tuples
Arrays ใช้สำหรับเก็บค่าหลายค่าที่มีประเภทข้อมูลเดียวกัน • ตัวอย่าง: let tags: string[] = ["ts", "js"];
Tuples คือ Array ที่มีขนาดคงที่และมีการระบุประเภทข้อมูลที่เฉพาะเจาะจงในแต่ละตำแหน่ง • ตัวอย่าง: let user: [string, number] = ["Ramesh", 31];
Union Types
ใช้ Union Types เมื่อค่าหนึ่งสามารถเป็นได้มากกว่าหนึ่งประเภท • ตัวอย่าง: let id: string | number = "abc123";
Special Types
4 ประเภทที่มักสร้างความสับสนให้กับมือใหม่:
any สิ่งนี้จะปิดการตรวจสอบประเภทข้อมูล ทำให้โค้ดของคุณทำงานเหมือน JavaScript ทั่วไป ควรใช้เป็นทางเลือกสุดท้ายเท่านั้น
unknown นี่คือเวอร์ชันที่ปลอดภัยของ any โดยระบุว่าค่าอาจเป็นอะไรก็ได้ แต่คุณต้องตรวจสอบประเภทข้อมูลก่อนนำไปใช้งาน
void ใช้สำหรับฟังก์ชันที่ไม่มีการส่งค่ากลับ
never ใช้สำหรับฟังก์ชันที่ไม่มีวันทำงานเสร็จสิ้น เช่น ฟังก์ชันที่โยน error หรือฟังก์ชันที่ทำงานวนลูปไม่สิ้นสุด
Summary for your workflow: • ใช้ primitives สำหรับข้อมูลส่วนใหญ่ • ใช้การอนุมาน (inference) เพื่อให้โค้ดดูสะอาดตา • ใช้ union types เพื่อรองรับ input ที่ยืดหยุ่น • หลีกเลี่ยง any • ใช้ unknown แทน any เมื่อคุณไม่แน่ใจ