ประกาศ TypeScript 4.0
(devblogs.microsoft.com)<p>- รองรับ Variadic* Tuple Type<br />
→ สามารถทำ generic type spread ได้ <br />
→ ตัวดำเนินการ `...` สามารถอยู่ตรงกลางได้ด้วย <br />
- รองรับ Label ใน Tuple<br />
- เพิ่มตัวดำเนินการ `&&=`, `||=`, `??=` <br />
- สามารถกำหนดประเภทของ `catch` เป็น `unknown` หรือ `any` ได้ <br />
→ หากใช้ `unknown` จะเป็นการระบุชัดว่าต้องตรวจสอบประเภทด้วย `typeof`/`instanceof` เป็นต้น ก่อนจัดการเสมอ<br />
- เมื่อใช้ JSX สามารถกำหนดเองได้ด้วย `jsxFragmentFactory`<br />
- สามารถอนุมานประเภทของพร็อพเพอร์ตีจาก constructor ได้<br />
- แม้ใช้ตัวเลือก `--noEmitOnError` ก็ยังแคชผลการคอมไพล์ก่อนหน้าไว้เพื่อปรับปรุงความเร็วในการบิลด์ได้ <br />
- สามารถใช้ `-incremental` ร่วมกับตัวเลือก `--noEmit` ได้ <br />
<br />
การปรับปรุงเอดิเตอร์ (Visual Studio Code)<br />
- ฟีเจอร์แปลง Optional Chaining & Nullish Coalescing อัตโนมัติ<br />
- รองรับ `/** @deprecated */`<br />
- รองรับ Partial Semantic Mode ตอนเริ่มต้นใช้งาน - คือการรันเซิร์ฟเวอร์แบบเบาที่ใช้กับไฟล์โค้ดที่เปิดอยู่เพียงบางส่วน เพื่อลดเวลาที่ใช้เมื่อโหลดโปรเจกต์ขนาดใหญ่<br />
- ฟังก์ชัน Auto-Import ที่ฉลาดขึ้น <br />
<br />
Breaking Changes <br />
- มีการเปลี่ยนแปลงประเภทที่เกี่ยวข้องกับ DOM ใน `lib.d.ts` <br />
→ นำ `document.origin` ออก และแนะนำให้ใช้ `self.origin` <br />
- หาก override getter/setter ของคลาสแม่ จะแสดงข้อผิดพลาดเสมอ <br />
- เมื่ออยู่ในสถานะ `strictNullChecks` ตัวถูกดำเนินการของ `delete` ต้องเป็น `any`, `unknown`, `never` หรือ optional<br />
<br />
* Variadic : หมายถึงการรับอาร์กิวเมนต์จำนวนไม่ตายตัว เช่น อาร์กิวเมนต์ของ `printf`</p>
1 ความคิดเห็น