# TypeScript-Go (tsgo) คืออะไร? Native Compiler เร็วขึ้น 10 เท่าสำหรับทีมพัฒนาไทย 2026
ทีมพัฒนาที่ทำโปรเจกต์ขนาดกลางขึ้นไปด้วย TypeScript คงเคยเจอปัญหาเดียวกัน เปิด VS Code แล้วรอ "Initializing JS/TS language features..." 30 วินาที, รัน tsc --noEmit แล้วต้องรอ 2-5 นาที, build production ใน CI/CD ใช้เวลานานขึ้นเรื่อย ๆ ตามจำนวน file ที่เพิ่มขึ้น
ปลายปี 2025 Microsoft ประกาศ Project Corsa หรือชื่อที่เรียกง่ายกว่า TypeScript-Go (tsgo) ซึ่งเป็นการ port TypeScript Compiler ทั้งตัวจาก JavaScript ไปยัง Go ผลลัพธ์คือ type-check เร็วขึ้น 10 เท่า memory usage ลดลงครึ่งหนึ่ง และ language server ที่ตอบสนองทันใจ
ในคู่มือนี้ทีมพัฒนาไทยจะได้รู้ว่า tsgo ทำงานอย่างไร ใช้เมื่อไรได้ ความเข้ากันได้กับ ecosystem ปัจจุบัน และขั้นตอนการ migrate ที่ปลอดภัย
ทำไม TypeScript ต้องเขียนใหม่ด้วย Go
TypeScript Compiler รุ่นเดิม (tsc) เขียนด้วย TypeScript ซึ่ง compile เป็น JavaScript ทำงานบน Node.js มีข้อจำกัดสำคัญ 3 ข้อ
Go ได้รับเลือกเพราะมี (1) Goroutine สำหรับ parallelism, (2) Compiled binary ขนาดเล็ก, (3) GC ที่ออกแบบมาสำหรับ low-latency workload และ (4) Microsoft มีประสบการณ์ใน Go จากโปรเจกต์ Microsoft 365 และ Azure Linux
ผลทดสอบประสิทธิภาพ tsgo เทียบกับ tsc
ตัวเลขจาก benchmark อย่างเป็นทางการของ Microsoft บนโปรเจกต์ขนาดต่างกัน
| โปรเจกต์ | ขนาด LOC | tsc (เดิม) | tsgo (ใหม่) | Speedup |
|---|---|---|---|---|
| VS Code | ~1.5M | 77.8s | 7.5s | 10.4x |
| Playwright | ~360k | 11.1s | 1.1s | 10.1x |
| TypeORM | ~270k | 17.5s | 1.3s | 13.5x |
| date-fns | ~110k | 6.5s | 0.7s | 9.5x |
| RxJS | ~100k | 4.6s | 0.5s | 9.2x |
Memory usage ลดลงประมาณ 50% และ language server response time ในการ go-to-definition / find-references เร็วขึ้น 8-12 เท่า ส่งผลให้นักพัฒนาทำงานได้ลื่นไหลขึ้นอย่างชัดเจน
tsgo ทำงานอย่างไร — สถาปัตยกรรมเบื้องหลัง
โค้ดของ tsgo ไม่ได้เขียนใหม่จากศูนย์ แต่เป็นการ "port" ทุก algorithm ของ tsc ตัวเดิมไปเป็น Go โดยรักษา semantic 100% เพื่อให้ผลการ type-check ออกมาเหมือนกัน
ประเด็นทางเทคนิคที่น่าสนใจ:
การติดตั้งและทดลองใช้
ขั้นตอนใช้งาน tsgo สำหรับโปรเจกต์ที่มีอยู่แล้ว
สำหรับ VS Code มี extension "TypeScript Native Preview" ที่ใช้ tsgo เป็น language service backend ทำให้ autocomplete และ hover เร็วขึ้นชัดเจน
ความเข้ากันได้กับ Ecosystem ปัจจุบัน
ทีมพัฒนาที่ใช้ Library/Tool ต่อไปนี้สามารถใช้ tsgo ได้ทันที
ฟีเจอร์ที่ยังต้องระวัง: Project References, Build Mode (--build), และ custom transformers บางตัวอยู่ในระหว่างการ port ตรวจสอบ status ที่ official roadmap ก่อน migrate production
tsgo เทียบกับทางเลือกอื่น (swc, oxc, biome)
| Tool | ภาษา | Type-Check | Transpile | Lint | Format |
|---|---|---|---|---|---|
| tsgo | Go | ใช่ | ไม่ | ไม่ | ไม่ |
| swc | Rust | ไม่ | ใช่ | ไม่ | ไม่ |
| oxc | Rust | กำลังพัฒนา | ใช่ | ใช่ | ใช่ |
| Biome | Rust | ไม่ | ใช่ | ใช่ | ใช่ |
| esbuild | Go | ไม่ | ใช่ | ไม่ | ไม่ |
จุดแตกต่างสำคัญ: tsgo ทำเฉพาะ "type-check" เท่านั้น ไม่ทำ transpile/lint/format จึงไม่แทนที่ swc หรือ Biome แต่ทำงานเสริมกัน ใช้ swc สำหรับ build, tsgo สำหรับ verify types, Biome สำหรับ lint+format
Roadmap จาก Microsoft
ตามแผนที่ Microsoft เผยแพร่:
สรุปและคำแนะนำสำหรับทีมไทย
TypeScript-Go (tsgo) เป็นการอัปเกรดที่ทีมพัฒนาทุกคนรอคอย ลด build time จากนาทีเหลือวินาที ลด CI cost ทำให้ Developer Experience ดีขึ้นอย่างมีนัยสำคัญ
คำแนะนำสำหรับ SME ไทย:
ต้องการคำปรึกษาเรื่องการ optimize TypeScript build pipeline, CI/CD performance, หรือสถาปัตยกรรม Frontend สมัยใหม่ ทีม ADS FIT ยินดีให้บริการ ตรวจสอบบทความเพิ่มเติมเรื่อง Cline AI Coding Agent, Cursor, Aider บน blog ของเรา
