เปิดตัว TypeScript 7.0 RC
(devblogs.microsoft.com)หัวข้อ: ประกาศ 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 มีกำหนดออกภายในราวหนึ่งเดือน และกำลังเปิดรับฟีดแบ็กจากการทดสอบกับโปรเจกต์จริงอย่างจริงจัง
ยังไม่มีความคิดเห็น