ข้ามไปยังเนื้อหา
Software

TypeScript 7.1 Beta เร็วขึ้น 1.9 เท่า วันเดียวกับที่ Cloudflare เปิด tsrs ฉบับ Rust

Microsoft ออก TypeScript 7.1 Beta เมื่อ 20 ต.ค. 2026 ตรวจโค้ดเร็วขึ้นสูงสุด 1.9 เท่า ใช้หน่วยความจำลดเกือบครึ่ง วันเดียวกับที่ Cloudflare เปิด tsrs ฉบับ Rust

โดย กองบรรณาธิการ THAI DATA อ่าน 6 นาที

แชร์FacebookXLINELinkedIn
ภาพประกอบประกาศ tsrs ของ Cloudflare ชื่อ tsrs อยู่กลางภาพ เชื่อมกับโลโก้ TS ของ TypeScript และปูซึ่งเป็นสัญลักษณ์ของภาษา Rust
ภาพ: Cloudflare

สรุปประเด็นสำคัญ

  • Microsoft ประกาศ TypeScript 7.1 Beta เมื่อ 20 ตุลาคม 2026 ติดตั้งได้ด้วย npm install -D typescript@beta และวางแผนออกรุ่น RC ในอีกราว 1 เดือน ก่อนรุ่นจริงตามมาไม่นาน
  • ในตารางของทีม TypeScript โปรเจกต์ mui-docs ตรวจชนิดข้อมูลเร็วขึ้น 1.9 เท่า (จาก 22.2 เหลือ 11.9 วินาที) และใช้หน่วยความจำลดลง 49.6% เมื่อเทียบกับ TypeScript 7.0
  • รุ่นนี้เพิ่ม API ใหม่ แบบแยก entry point เช่น typescript/sync และ typescript/async, content mappers สำหรับไฟล์อย่าง .vue และ .svelte, รองรับ --target es2026 และ import source
  • วันเดียวกัน Cloudflare, VoidZero และ Max Schwenk จาก Owner.com เปิด tsrs ซึ่งพอร์ตคอมไพเลอร์ TypeScript เป็น Rust อ้างว่าเร็วกว่า TypeScript 7.0 สูงสุด 8 เท่า และใช้หน่วยความจำน้อยกว่าราว 70% โดยย้ำว่าไม่ได้ fork ภาษา
  • tsrs ยังเป็นรุ่นทดลอง (รุ่นที่เผยแพร่ล่าสุดคือ 0.18.0) ใช้สัญญาอนุญาต Apache-2.0 รันบน WebAssembly ได้ และยังให้ผลบางอย่างต่างจากต้นฉบับ เช่น ลำดับของ diagnostics

Microsoft ออก TypeScript 7.1 Beta เมื่อวันที่ 20 ตุลาคม 2026 รุ่นนี้ตรวจชนิดข้อมูลเร็วขึ้นสูงสุด 1.9 เท่าและใช้หน่วยความจำลดลงเกือบครึ่งในชุดทดสอบของทีม TypeScript พร้อม API ใหม่สำหรับคนทำเครื่องมือ วันเดียวกัน Cloudflare เปิดตัว tsrs ซึ่งพอร์ตคอมไพเลอร์ TypeScript เป็นภาษา Rust และอ้างว่าเร็วกว่า TypeScript 7.0 สูงสุด 8 เท่า

ทั้งสองข่าวต่อยอดจาก TypeScript 7 ซึ่งทีม TypeScript พอร์ตคอมไพเลอร์จาก JavaScript ไปเป็นภาษา Go และเร็วกว่า TypeScript 6 ราว 10 เท่า สำหรับทีมที่มีโค้ด TypeScript ขนาดใหญ่ ตัวเลขนี้คือเวลารอใน CI และในโปรแกรมแก้ไขโค้ดที่สั้นลง

TypeScript 7.1 Beta เร็วขึ้นเท่าไร

ทีม TypeScript วัดผลด้วยค่าเริ่มต้นคือ type checker 4 เธรด และสั่งตรวจอย่างเดียวด้วย --noEmit บน 5 โปรเจกต์ ผลเป็นดังนี้

โปรเจกต์ TypeScript 7.0 TypeScript 7.1 Beta เร็วขึ้น หน่วยความจำ 7.0 → 7.1 Beta
bluesky 4.48 วินาที 3.89 วินาที 1.2 เท่า 2,017 → 1,698 MiB (−15.8%)
mui-docs 22.2 วินาที 11.9 วินาที 1.9 เท่า 8,093 → 4,079 MiB (−49.6%)
sentry 19.6 วินาที 15.1 วินาที 1.3 เท่า 6,587 → 5,216 MiB (−20.8%)
t3code-server 26.5 วินาที 19.1 วินาที 1.4 เท่า 6,894 → 5,197 MiB (−24.6%)
vscode 21.6 วินาที 17.7 วินาที 1.2 เท่า 8,387 → 6,943 MiB (−17.2%)
กราฟเวลาตรวจโค้ดของ TypeScript 7.0 เทียบ TypeScript 7.1 Beta ใน bluesky, mui-docs, sentry, t3code-server และ vscode โดย mui-docs ลดจาก 22.2 เหลือ 11.9 วินาที
กราฟของทีม TypeScript เทียบเวลาตรวจโค้ดของ TypeScript 7.0 กับ TypeScript 7.1 Beta ใน 5 โปรเจกต์ ยิ่งสั้นยิ่งดี ภาพ: Microsoft
กราฟหน่วยความจำสูงสุด (MiB) ของ TypeScript 7.0 เทียบ TypeScript 7.1 Beta ใน 5 โปรเจกต์ เช่น vscode ลดจาก 8,387 เหลือ 6,943 MiB
หน่วยความจำสูงสุดของ TypeScript 7.1 Beta ลดลงทุกโปรเจกต์ มากที่สุดคือ mui-docs ที่ลดจาก 8,093 เหลือ 4,079 MiB ภาพ: Microsoft

ความเร็วมาจากการปรับแต่งเกือบ 50 รายการ เช่น สร้าง union type เร็วขึ้น ใช้โปรแกรมเดิมซ้ำเมื่อแก้ไฟล์เดียว แก้อาการค้างตอนตั้งค่า build mode ในโซลูชันขนาดใหญ่ จัดลำดับโปรเจกต์ของ tsc -b ตามความลึกของ dependency และบีบโครงสร้างข้อมูลภายในของตัวตรวจให้กินหน่วยความจำน้อยลง

ฟีเจอร์ใหม่ใน TypeScript 7.1 Beta

นอกจากความเร็ว รุ่นนี้มีของใหม่ที่กระทบทั้งคนเขียนแอปและคนทำเครื่องมือ

  • API ใหม่แบบแยกส่วน แทน API ก้อนเดียว เช่น typescript/sync (ไคลเอนต์คอมไพเลอร์แบบ synchronous ที่เข้าถึง compiler options, type checker และ program), typescript/async (แบบ Promise), typescript/fs (ระบบไฟล์เสมือน) และ typescript/ast มีแนวคิด snapshot ที่อัปเดตเฉพาะไฟล์ที่เปลี่ยนแทนการสร้างใหม่ทั้งหมด
  • Content mappers จุดเสียบปลั๊กอินใหม่ที่จับคู่นามสกุลไฟล์ เช่น .vue กับตัวแปลงที่สร้างโค้ดเสมือนให้ TypeScript ตรวจ ทีม TypeScript ระบุว่ามีต้นแบบหรือการใช้งานแล้วสำหรับ Astro, CSS Modules, Ember, MDX, Svelte และ Vue ทำให้ตรวจไฟล์เหล่านี้จาก command line ได้ ไม่ใช่เฉพาะในโปรแกรมแก้ไขโค้ด
  • --target es2026 เป็นตัวเลือกที่เสถียรแล้ว พร้อมชนิดข้อมูลของ Math.sumPrecise(), Iterator.concat() และ JSON.rawJSON() ส่วน --lib esnext เพิ่ม Promise.allKeyed, Iterator.zip และเมธอดอื่นที่ยังเป็นข้อเสนอ
  • import source (source phase imports) ข้อเสนอของ ECMAScript ที่คืนอ็อบเจกต์ของโมดูลที่ parse แล้วแต่ยังไม่รัน เช่น WebAssembly.Module และรองรับ import attributes ในการประกาศ ambient module เช่น ไฟล์ CSS ที่ import ด้วย with { type: "css" }

ข้อควรระวังก่อนอัปเกรดเป็น TypeScript 7.1 Beta

เรื่องแรกคือความปลอดภัย content mapper เป็นโปรแกรมภายนอกที่ TypeScript สั่งรัน การใช้จาก command line จึงต้องใส่ --runExternalCode ให้ชัด ส่วนใน VS Code ต้องเปิด workspace trust และให้สิทธิ์ content mapper ก่อน และปิดทั้งหมดได้ด้วยค่า js/ts.contentMappers.enabled

อีกเรื่องที่อาจทำให้ build เดิมแดงคือ TypeScript 7.1 Beta ตรวจ conditional type ที่กระจายผ่าน union (distributive type parameters) เข้มขึ้น โค้ดที่เคยผ่านอาจเจอข้อความว่า type parameter ไม่ตรงตามเงื่อนไขของอีกตัว และไฟล์ lib.d.ts ของ DOM ก็ถูกปรับชนิดข้อมูลด้วย

tsrs คืออะไร เกี่ยวกับ TypeScript 7.1 Beta อย่างไร

Cloudflare ประกาศในบล็อกวันเดียวกันว่ากำลังทำ tsrs ร่วมกับ VoidZero และ Max Schwenk จาก Owner.com โดยบ่มเพาะโครงการไว้ในชุดเครื่องมือคอมไพเลอร์ JavaScript ชื่อ Oxc และทำงานใกล้ชิดกับทีม TypeScript ผู้เขียนบทความระบุชัดว่า "เราไม่ได้ fork TypeScript" ทีม TypeScript ยังควบคุมการออกแบบและทิศทางของภาษาแต่ผู้เดียว tsrs มีหน้าที่ตามพฤติกรรมของต้นฉบับให้ตรงที่สุด

ตัวเลขเบื้องต้นของ Cloudflare ระบุว่า tsrs เร็วกว่า TypeScript 7.0 สูงสุด 8 เท่าและใช้หน่วยความจำน้อยกว่าราว 70% เมื่อใช้จำนวน worker ตรวจชนิดข้อมูลเท่ากัน ในกราฟของบล็อก โปรเจกต์ MUI docs ใช้เวลา 1.29 วินาทีด้วย tsrs เทียบกับ 10.44 วินาทีของ TypeScript 7.0.2 Cloudflare ยังบอกว่าการปรับแต่งบางส่วนใน TypeScript 7.1 Beta ส่งกลับมาจาก tsrs และบล็อกระบุว่า TypeScript 7.1 เองเร็วกว่า 7.0 สูงสุด 2.5 เท่าในการวัดของ Cloudflare ซึ่งวัดกับ nightly build และได้ตัวเลขเวลาคนละชุดกับตารางของทีม TypeScript ตัวเลขสองชุดนี้จึงเทียบกันตรง ๆ ไม่ได้

กราฟ TypeScript Default Config ของ Cloudflare เทียบ tsrs 0.18.0, TypeScript nightly 7.1.0-dev และ TypeScript 7.0.2 เช่น MUI docs ใช้ 1.29 วินาทีกับ tsrs เทียบ 10.44 วินาที
กราฟของ Cloudflare เทียบเวลาและหน่วยความจำของ tsrs, TypeScript nightly และ TypeScript 7.0.2 ในโปรเจกต์ VS Code, MUI docs, webpack และ t3code server ด้วยค่าตั้งต้นเดียวกัน ภาพ: Cloudflare

เหตุผลที่เลือก Rust ทั้งที่ TypeScript ฉบับ Go เร็วขึ้นมากแล้ว คือ WebAssembly เมื่อคอมไพล์ Go เป็น Wasm ต้องพา garbage collector ไปด้วย ส่วนโมเดลหน่วยความจำของ Rust ทำให้ Wasm เล็กและประหยัดกว่า Cloudflare ต้องการให้เครื่องมือพัฒนาทั้งชุดรันในสภาพแวดล้อมแยกบน Cloudflare Workers ในเบราว์เซอร์ หรือบนอุปกรณ์ฝังตัวได้ ซึ่ง README ของโครงการระบุว่ามีแพ็กเกจ @tsrs/wasm และ playground บนเบราว์เซอร์แล้ว

AI เปลี่ยนวิธีพอร์ตและดูแลโครงการ

บล็อกของ Cloudflare ยอมรับว่าที่ผ่านมามีความพยายามพอร์ต TypeScript ไปภาษาอื่นหลายครั้ง แต่ที่สำเร็จมีเพียงฉบับ Go ของทีม TypeScript เอง ตอนนี้โมเดล AI แนวหน้าพอร์ตโค้ดขนาดใหญ่ได้เกือบเองภายในไม่กี่วัน การดูแลต่อจากนี้จะใช้วิธีเดียวกับโครงการ Vinext ที่ตาม Next.js คือมีเอเจนต์ตรวจการเปลี่ยนแปลงของต้นฉบับทุกเช้าและรันชุดทดสอบเทียบทุกคืน และ Cloudflare จะรวม tsrs กับ tsc-rs ของ Theo Browne เป็นแพ็กเกจเดียวที่รองรับ Language Server Protocol และ content mappers

README บน GitHub บอกสถานะที่ทีมพัฒนาควรรู้

  • tsrs ตั้งใจเป็นตัวแทนแบบ drop-in ของคอมไพเลอร์และ language server ของ TypeScript 7 เป้าหมายคือความถูกต้อง 100% รุ่น 0.19.0 ที่กำลังเตรียมตามซอร์สของ TypeScript v7.1-beta
  • ยังมีความต่าง เช่น ลำดับของ diagnostics และไม่รองรับ --init กับ --showConfig
  • โครงการรับรายงานบั๊กแต่ยังปิดรับ pull request และระบุว่าไม่ได้เกี่ยวข้องหรือได้รับการรับรองจาก Microsoft แม้บล็อกจะบอกว่าทำงานร่วมกับทีม TypeScript ก็ตาม

ผลต่อองค์กรไทยและทีมพัฒนา

  1. ลอง TypeScript 7.1 Beta ใน branch แยก ด้วย npm install -D typescript@beta แล้ววัดเวลา tsc --noEmit ใน CI เทียบกับรุ่นเดิม ทีมที่มี monorepo ขนาดใหญ่หรือ runner ที่หน่วยความจำจำกัดน่าจะเห็นผลชัดที่สุด
  2. หาข้อผิดพลาดใหม่ที่ TypeScript 7.1 Beta แจ้ง โดยเฉพาะ conditional type ที่ซับซ้อนและชนิดข้อมูลของ DOM แล้วรายงานกลับไปยังทีม TypeScript ก่อนรุ่น RC ที่คาดว่าจะออกในราวหนึ่งเดือน
  3. ทีม Vue, Svelte และ Astro ติดตาม content mappers ของเฟรมเวิร์กที่ใช้ แต่ให้ฝ่ายความปลอดภัยกำหนดก่อนว่าจะอนุญาต --runExternalCode ใน CI หรือไม่ เพราะเป็นการรันโค้ดของแพ็กเกจภายนอก
  4. มอง tsrs เป็นการทดลอง ไม่ใช่ตัวแทน ลองรัน npx tsrs คู่กับ tsc ของ TypeScript 7.1 Beta เพื่อดูความเร็วและความถูกต้อง แต่ยังไม่ควรให้เป็นตัวตัดสินว่า build ผ่านหรือไม่จนกว่าจะมีรุ่นเสถียร
  5. ตรวจเงื่อนไขไลเซนส์ tsrs ใช้ Apache-2.0 และเป็นงานดัดแปลงจาก TypeScript ของ Microsoft องค์กรที่จะนำไปฝังในผลิตภัณฑ์ควรเก็บไฟล์ NOTICE ตามเงื่อนไข ติดตามข่าวเครื่องมือนักพัฒนาอื่นได้ที่หมวดการพัฒนาซอฟต์แวร์

คำถามที่พบบ่อย

TypeScript 7.1 Beta มีอะไรใหม่?

TypeScript 7.1 Beta ที่ Microsoft ออกเมื่อ 20 ตุลาคม 2026 เพิ่ม API ใหม่สำหรับคนสร้างเครื่องมือ เพิ่ม content mappers ให้ไฟล์ของเฟรมเวิร์กอย่าง Vue, Svelte และ Astro ใช้การตรวจชนิดข้อมูลของ TypeScript ได้โดยตรง รองรับ --target es2026 และ import source และมีการปรับแต่งประสิทธิภาพเกือบ 50 รายการ

TypeScript 7.1 Beta เร็วกว่า TypeScript 7.0 เท่าไร?

ตารางของทีม TypeScript ที่วัดด้วย type checker 4 เธรดและ --noEmit แสดงว่า TypeScript 7.1 Beta เร็วขึ้น 1.2–1.9 เท่าแล้วแต่โปรเจกต์ โปรเจกต์ mui-docs ได้มากที่สุด เวลาลดจาก 22.2 เหลือ 11.9 วินาที และหน่วยความจำลดจาก 8,093 เหลือ 4,079 MiB หรือลดลง 49.6%

tsrs คืออะไร ต่างจาก TypeScript ของ Microsoft อย่างไร?

tsrs คือคอมไพเลอร์และ language server ของ TypeScript 7 ที่พอร์ตไปเป็นภาษา Rust โดย Cloudflare, VoidZero และ Max Schwenk ภาษาที่ตรวจยังเป็น TypeScript ตัวเดิม และทีม TypeScript ยังเป็นผู้กำหนดทิศทางภาษา รุ่นที่กำลังเตรียมตามซอร์สของ TypeScript 7.1 Beta tsrs ตั้งเป้าให้ผลตรงกับต้นฉบับ 100% แต่เร็วกว่าและใช้หน่วยความจำน้อยกว่า และไม่ได้เป็นผลิตภัณฑ์ที่ Microsoft รับรอง

ควรใช้ TypeScript 7.1 Beta หรือ tsrs ใน CI ของงานจริงแล้วหรือยัง?

ยังไม่ควรใช้แทนตัวหลัก TypeScript 7.1 Beta เป็นรุ่นทดสอบที่จะมี RC ในอีกราวหนึ่งเดือน ส่วน tsrs เป็นรุ่นทดลองที่ README ระบุว่ายังมีความต่าง เช่น ลำดับ diagnostics และยังไม่รองรับ --init กับ --showConfig ทีมควรรันทั้งสองคู่ขนานกับคอมไพเลอร์ที่ใช้อยู่ใน branch แยกเพื่อวัดผลก่อน

แหล่งอ้างอิง

  1. Announcing TypeScript 7.1 Beta — Microsoft TypeScript Blog
  2. Introducing tsrs: A port of TypeScript to Rust — The Cloudflare Blog
  3. oxc-project/tsrs: Rust port of the TypeScript 7 type checker — GitHub (Oxc project)

บุคคล องค์กร และสถานที่ในข่าวนี้

เลือกชื่อเพื่ออ่านข่าวทั้งหมดที่กล่าวถึง ตัวเลขคือจำนวนข่าว

องค์กรและบริษัท
Cloudflare11Microsoft109Ember2GitHub50
ผลิตภัณฑ์และเทคโนโลยี
TypeScript4Rust12npm9Cloudflare Workers2Next.js4
แชร์FacebookXLINELinkedIn

พบข้อมูลคลาดเคลื่อน? แจ้งกองบรรณาธิการ