Foundations & Mental Model
ไอเดียในหนึ่งประโยค
หัวข้อที่มีชื่อว่า “ไอเดียในหนึ่งประโยค”TypeScript คือ JavaScript บวกกับ static type system ที่ทำงานตอน compile time และหายไปตอน runtime ไม่เปลี่ยนสิ่งที่ code ของคุณ ทำ — แต่เปลี่ยนสิ่งที่ compiler ยอมให้คุณเขียน จับ bug ทั้งกลุ่มได้ก่อนที่ code จะรันเสียอีก
ทุกอย่างขั้นสูงในคอร์สนี้ — generics, conditional types, mapped types — คือ system เดียวกันนี้ที่ถูกต่อยอดไปจนสุดทาง เข้าใจ mental model ให้ถูก แล้วที่เหลือจะตามมาเอง
โมดูลนี้ครอบคลุมอะไรบ้าง
หัวข้อที่มีชื่อว่า “โมดูลนี้ครอบคลุมอะไรบ้าง”| บทเรียน | สิ่งที่คุณจะได้เรียน |
|---|---|
| Why TypeScript | type ให้อะไรกับเรา และเส้นแบ่ง compile-time / runtime |
| The type-system mindset | type คือ เซตของ value — mental model ที่มีประโยชน์ที่สุด |
| Structural typing | ทำไม TypeScript สนใจ shape ไม่ใช่ชื่อ |
| Type inference | compiler เดา type ที่คุณไม่ได้เขียนออกมาได้อย่างไร |
เลนส์สำหรับทั้งคอร์ส
หัวข้อที่มีชื่อว่า “เลนส์สำหรับทั้งคอร์ส”สองไอเดียนี้ พอเอามารวมกัน อธิบายพฤติกรรมของ TypeScript ได้แทบทุกอย่างที่คุณจะเจอ:
flowchart TB sets["Type คือ เซต ของ value (number = ทุกจำนวน)"] --> assign["Assignability = ความสัมพันธ์แบบ subset"] struct["Typing เป็นแบบ STRUCTURAL (ดูที่ shape ไม่ใช่ชื่อ)"] --> compat["Compatibility = shape เข้ากันได้ไหม"] assign --> ts["ทุกพฤติกรรมของ TS"] compat --> ts
เวลาที่การ assign ผ่านได้ เป็นเพราะเซตของ value ของ type หนึ่งพอดีอยู่ในอีก type หนึ่ง เวลาที่ object สองตัวใช้แทนกันได้ เป็นเพราะ shape ของตัวเองตรงกัน จำสองไอเดียนี้ไว้ แล้ว TypeScript จะเลิกทำให้คุณประหลาดใจ