𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 𝗧𝘆𝗽𝗲𝘀 𝗗𝗲𝗺𝘆𝘀𝘁𝗶𝗳𝗶𝗲𝗱

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 ประเภทที่มักสร้างความสับสนให้กับมือใหม่:

  1. any สิ่งนี้จะปิดการตรวจสอบประเภทข้อมูล ทำให้โค้ดของคุณทำงานเหมือน JavaScript ทั่วไป ควรใช้เป็นทางเลือกสุดท้ายเท่านั้น

  2. unknown นี่คือเวอร์ชันที่ปลอดภัยของ any โดยระบุว่าค่าอาจเป็นอะไรก็ได้ แต่คุณต้องตรวจสอบประเภทข้อมูลก่อนนำไปใช้งาน

  3. void ใช้สำหรับฟังก์ชันที่ไม่มีการส่งค่ากลับ

  4. never ใช้สำหรับฟังก์ชันที่ไม่มีวันทำงานเสร็จสิ้น เช่น ฟังก์ชันที่โยน error หรือฟังก์ชันที่ทำงานวนลูปไม่สิ้นสุด

Summary for your workflow: • ใช้ primitives สำหรับข้อมูลส่วนใหญ่ • ใช้การอนุมาน (inference) เพื่อให้โค้ดดูสะอาดตา • ใช้ union types เพื่อรองรับ input ที่ยืดหยุ่น • หลีกเลี่ยง any • ใช้ unknown แทน any เมื่อคุณไม่แน่ใจ

Source: https://dev.to/ramesh_s_a8f0867d239e927c/typescript-types-demystified-simple-types-special-types-and-type-inference-5bf0