หัวข้อ: ประกาศ TypeScript 7.0 RC - เขียนใหม่ด้วย Go ทำงานเร็วขึ้นราว 10 เท่า
เนื้อหา:

Microsoft ประกาศ Release Candidate ของ TypeScript 7.0 โดยหัวใจสำคัญคือการพอร์ตโค้ดเบสเดิมตลอด 1 ปีที่ผ่านมา จาก TypeScript (โค้ดเบส bootstrap ที่คอมไพล์เป็น JS) ไปเป็น Go
ด้วยการผสานความเร็วระดับเนทีฟโค้ดเข้ากับการประมวลผลขนานแบบหน่วยความจำร่วม ทำให้มีประสิทธิภาพเร็วขึ้นประมาณ 10 เท่าเมื่อเทียบกับ TypeScript 6.0
สามารถติดตั้งได้ทันทีด้วย npm install -D typescript@rc

ความเข้ากันได้และความเสถียร

ไม่ใช่การเขียนใหม่ทั้งหมดตั้งแต่ต้น แต่เป็นการพอร์ตการทำงานเดิมอย่างเป็นระบบ ดังนั้นตรรกะการตรวจสอบชนิดข้อมูลจึงมีโครงสร้างเหมือนกับ 6.0
ผ่านการตรวจสอบด้วยชุดทดสอบขนาดใหญ่ที่สั่งสมมากว่า 10 ปี และมีการใช้งานแล้วกับโค้ดเบสขนาดหลายล้านบรรทัดทั้งภายในและภายนอก Microsoft
หลายบริษัท เช่น Bloomberg, Canva, Figma, Google, Linear, Notion, Slack และ Vercel ได้ทดสอบพรีบิลด์มานานกว่าหนึ่งปี และส่วนใหญ่ให้ฟีดแบ็กเชิงบวกว่าเวลาบิลด์ลดลงอย่างมาก

การควบคุมการประมวลผลขนาน

ทำงาน parsing / type-checking / emit แบบขนาน สามารถใช้แฟล็ก --checkers เพื่อปรับจำนวน worker ของ type checker (ค่าเริ่มต้น 4), ใช้แฟล็ก --builders เพื่อทำบิลด์แบบขนานสำหรับ project reference (มีประโยชน์กับ monorepo) และบังคับโหมดเธรดเดียวได้ด้วย --singleThreaded

โหมด --watch ที่ปรับปรุงดีขึ้น

พอร์ต file-watcher ของ Parcel bundler ไปเป็น Go ทำให้ประสิทธิภาพการเฝ้าดูไฟล์ข้ามแพลตฟอร์มดีขึ้นอย่างมาก

การใช้งานคู่ขนานกับ 6.0 (Side-by-Side)

programmatic API ที่มีความเสถียรจะพร้อมใช้งานใน 7.1 เท่านั้น (อีกไม่กี่เดือนข้างหน้า)
แพ็กเกจที่เข้ากันได้ @typescript/typescript6 มีไฟล์ปฏิบัติการ tsc6 ให้ใช้ จึงสามารถใช้งาน 6.0 และ 7.0 ร่วมกันได้โดยไม่ชนกัน แนะนำให้ใช้ npm alias

การเปลี่ยนค่าเริ่มต้นสำคัญ / Breaking Changes

ค่าเริ่มต้นของ strict เปลี่ยนเป็น true, module เปลี่ยนเป็น esnext และบังคับเปิดใช้ stableTypeOrdering
ตัวเลือกที่ deprecated จำนวนมาก เช่น target: es5, downlevelIteration, moduleResolution: node/node10/classic, module: amd/umd/systemjs, baseUrl เป็นต้น จะกลายเป็น hard error
ตอนนี้ template literal type สามารถจัดการ Unicode code point ได้อย่างเป็นธรรมชาติมากขึ้น ("😀abc"["😀", "abc"])
มีการปรับปรุงการรองรับ JavaScript (อิง JSDoc) ให้สอดคล้องกับวิธีวิเคราะห์ไฟล์ .ts มากขึ้น

ประสบการณ์ใช้งานในเอดิเตอร์

มีส่วนขยาย TypeScript Native Preview สำหรับ VS Code ซึ่งอิง LSP และใช้ประโยชน์จากมัลติเธรด โดยระบุว่าคำสั่ง language server ที่ล้มเหลวลดลงมากกว่า 20 เท่าเมื่อเทียบกับ 6.0

กำหนดการ: เวอร์ชันทางการ 7.0 มีกำหนดออกภายในราวหนึ่งเดือน และกำลังเปิดรับฟีดแบ็กจากการทดสอบกับโปรเจกต์จริงอย่างจริงจัง

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น