โหมดมืด
Typescript
ส่วนหนึ่งของ Beginner Book | ควรผ่าน Javascript มาก่อน
หนังสือเล่มนี้สอน TypeScript ตั้งแต่ "ไม่รู้จักเลย" จนถึงระดับที่อ่านโค้ดของ library (ไลบรารี—ชุดโค้ดสำเร็จรูปที่คนอื่นเขียนไว้ให้เราเรียกใช้) มืออาชีพออก เขียนเป็นภาษาไทย อธิบายทุกแนวคิดอย่างละเอียด ไม่รวบรัด — ออกแบบให้ "อ่านเองแล้วเข้าใจ" จริง ๆ
TypeScript คืออะไรสั้น ๆ: JavaScript ที่เพิ่ม "ระบบตรวจสอบ type" — ช่วยจับบั๊กตั้งแต่ตอนเขียนโค้ด (ก่อนผู้ใช้เจอ) และทำให้ editor ฉลาดขึ้นมาก ปี 2026 มันคือมาตรฐานของงานพัฒนาเว็บระดับมืออาชีพ
อ่านจบเล่มนี้ คุณจะทำอะไรได้
- เข้าใจว่า TypeScript ทำงานยังไง — compile-time (ช่วงตรวจ/แปลงโค้ดก่อนรัน), type erasure (การลบ type ทิ้งตอน compile), structural typing (เทียบ type โดยดูที่ "โครงสร้าง" ของข้อมูล ไม่ใช่ "ชื่อ" ของ type — อธิบายเต็มในบทที่ 0) — คำพวกนี้จะอธิบายเต็มในบทที่ 0
- เขียน type ให้โค้ดได้อย่าง type-safe และเป็นธรรมชาติ
- เข้าใจ generic อย่างลึกซึ้ง — หัวใจของ TypeScript ระดับกลาง
- ใช้ utility types และ type narrowing เป็น
- อ่านและเขียน type ขั้นสูง — conditional, mapped, template literal,
infer - สร้าง declaration file และเข้าใจระบบ module
- เอา TypeScript ไปใช้กับงานจริง — React, Node.js, การตรวจสอบข้อมูลด้วย Zod
- ย้ายโปรเจกต์ JavaScript เดิมมาเป็น TypeScript ได้
สิ่งที่ต้องรู้มาก่อน
⚠️ TypeScript สร้างบน JavaScript — ถ้าคุณยังไม่รู้จัก JavaScript เลย หรือยังไม่แน่นเรื่อง async/await และระบบ module (
import/export) แนะนำให้อ่าน JavaScript เล่ม ให้จบบทที่ 10 (Modules) ก่อน แล้วค่อยกลับมาที่บทนี้
✅ JavaScript พื้นฐานที่ดี — อย่างน้อยต้องเข้าใจ ตัวแปร, ฟังก์ชัน, object, array, class, async/await และระบบ module (import/export)
ถ้ายังไม่แม่น แนะนำอ่าน Javascript ให้จบก่อน — เพราะ TypeScript คือ "JavaScript + ระบบ type" ถ้าพื้นฐาน JavaScript ไม่แน่น จะแยกไม่ออกว่าอะไรคือส่วนของ JavaScript อะไรคือส่วนที่ TypeScript เพิ่มเข้ามา
สารบัญบทเรียน
เล่มนี้มี 12 บท (รวมบท 0) — นับบทที่ 0 ถึงบทที่ 11
| # | บท | เรียนอะไร | ระดับ |
|---|---|---|---|
| 0 | TypeScript คืออะไร | ปัญหาที่ TS แก้, compile-time vs runtime, type erasure, structural typing | พื้นฐาน |
| 1 | ติดตั้งและตั้งค่า | ติดตั้ง, รันโค้ด, tsconfig.json ทีละบรรทัด, strict mode | พื้นฐาน |
| 2 | Basic Types | primitive, array, tuple, literal, union, any/unknown/never | พื้นฐาน |
| 3 | Functions | type ของพารามิเตอร์/return, optional/default/rest, overload | พื้นฐาน |
| 4 | Object Types + Interface | type vs interface, optional/readonly, discriminated union | พื้นฐาน |
| 5 | Generics | "พารามิเตอร์สำหรับ type", constraint, keyof, conditional, infer | กลาง |
| 6 | Utility Types | Partial, Pick, Omit, Record, ReturnType, mapped type | กลาง |
| 7 | Type Narrowing | typeof/instanceof/in, type predicate, exhaustive check | กลาง |
| 8 | Class + Modifier | access modifier, #private, inheritance, abstract, generic class | กลาง |
| 9 | Module + Declaration | import type, .d.ts, ambient declaration, @types/* | กลาง |
| 10 | Advanced Patterns | mapped type ลึก, template literal, branded type, type-level programming | สูง — ข้ามได้ |
| 11 | TS in Practice | React, Node, แชร์ type, Zod, migration, เครื่องมือ | ใช้งานจริง |
วิธีอ่านที่แนะนำ
- อ่านเรียงตามลำดับ — แต่ละบทอ้างอิงความรู้จากบทก่อน อย่าข้าม
- เปิด TypeScript Playground ไว้ตลอด — พิมพ์โค้ดตามทุกตัวอย่าง การ "เห็น error จริง" สำคัญกว่าการอ่านเฉย ๆ
- ใช้ VS Code — editor ที่เข้ากับ TypeScript ดีที่สุด
- เปิด
strictmode ตั้งแต่บทแรก — อย่าผัดวันประกันพรุ่ง - ทำ Lab และ Checkpoint ทุกบท — แต่ละบทมีโจทย์ให้ลงมือและคำถามทบทวน (พร้อมเฉลยแบบกดดู) TypeScript เป็นทักษะที่ "เข้าใจจากการอ่าน" ไม่พอ ต้อง "ลงมือพิมพ์" ถึงจะซึม
เคล็ดลับสำหรับมือใหม่
- บทที่ 0–4 คือรากฐาน — ถ้าบทพวกนี้ไม่แน่น บทหลังจะลำบาก ใจเย็น ๆ กับช่วงต้น
- บทที่ 5 (Generics) คือจุดเปลี่ยน — ยากกว่าบทอื่น แต่ถ้าผ่านได้ ที่เหลือจะง่ายขึ้นมาก
- บทที่ 10 (Advanced) ไม่ต้องเชี่ยวชาญทุกอย่าง — เข้าใจแนวคิดก็พอ ค่อยกลับมาลงลึกเมื่อจำเป็น
- งงตรงไหน — อ่านซ้ำ, ลองพิมพ์โค้ดใน Playground, แล้วค่อยไปต่อ