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

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

- ประเภท: ข่าว · หมวด: Software
- เผยแพร่: 2026-10-22T12:45:00.000Z · อัปเดต: 2026-10-22T12:45:00.000Z
- โดย: กองบรรณาธิการ THAI DATA, THAI DATA IT BUSINESS ENTERPRISE
- ที่มา: https://thaidata.co.th/software/typescript-7-1-beta-tsrs-rust-port-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 เทียบเวลาตรวจโค้ดของ TypeScript 7.0 กับ TypeScript 7.1 Beta ใน 5 โปรเจกต์ ยิ่งสั้นยิ่งดี](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/typescript-7-1-beta-tsrs-rust-port-cloudflare/swb-dev-ts71-beta-build-time.webp?v=d9f8f586) _(ภาพ: Microsoft)_

![หน่วยความจำสูงสุดของ TypeScript 7.1 Beta ลดลงทุกโปรเจกต์ มากที่สุดคือ mui-docs ที่ลดจาก 8,093 เหลือ 4,079 MiB](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/typescript-7-1-beta-tsrs-rust-port-cloudflare/swb-dev-ts71-beta-peak-memory.webp?v=e4b90f6b) _(ภาพ: 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 ตัวเลขสองชุดนี้จึงเทียบกันตรง ๆ ไม่ได้

![กราฟของ Cloudflare เทียบเวลาและหน่วยความจำของ tsrs, TypeScript nightly และ TypeScript 7.0.2 ในโปรเจกต์ VS Code, MUI docs, webpack และ t3code server ด้วยค่าตั้งต้นเดียวกัน](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/typescript-7-1-beta-tsrs-rust-port-cloudflare/swb-dev-tsrs-benchmark-default.webp?v=09fa34f4) _(ภาพ: 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 ตามเงื่อนไข ติดตามข่าวเครื่องมือนักพัฒนาอื่นได้ที่[หมวดการพัฒนาซอฟต์แวร์](/software/development/)

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

### 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 แยกเพื่อวัดผลก่อน


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

- [Announcing TypeScript 7.1 Beta](https://devblogs.microsoft.com/typescript/announcing-typescript-7-1-beta/) — Microsoft TypeScript Blog
- [Introducing tsrs: A port of TypeScript to Rust](https://blog.cloudflare.com/typescript-rust-port/) — The Cloudflare Blog
- [oxc-project/tsrs: Rust port of the TypeScript 7 type checker](https://github.com/oxc-project/tsrs) — GitHub (Oxc project)
