9 คะแนน โดย 0xwof 2022-09-14 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • TypeScript 4.9 มีกำหนดจะเปิดตัวในวันที่ 15 พฤศจิกายน และจะเริ่มเบต้าเทสต์ตั้งแต่วันที่ 20 กันยายน

    • ขณะนี้สามารถใช้งานได้แบบ nightly บน Playground
  • มีการเพิ่มคีย์เวิร์ด satisfies ใน TypeScript 4.9

  • ต่างจากคีย์เวิร์ด as เดิมตรงที่รองรับการอัปแคสต์อย่างปลอดภัย

  • เดิมทีจะทำการอัปแคสต์อย่างปลอดภัยได้ก็ต่อเมื่อมีการกำหนด type ไว้ล่วงหน้าเท่านั้น

  • หากใช้ satisfies ก็จะสามารถทำการอัปแคสต์อย่างปลอดภัยกับ key-value เพียงคู่เดียวภายใน object ได้อย่างสะดวก

  • แบบเดิม

// ปลอดภัยแต่ต้องประกาศ type อย่างยุ่งยาก (การประกาศ type)  
const object: {  
    a: number  
    b: { a: number }  
} = {  
     a: 10,  
     b: { a: 10, b: 20 } // no error  
     // b: {} // error  
}  
// สะดวกแต่ไม่ปลอดภัย (`as`)  
const object = {  
    a: 10,  
    b: { a: 10, b: 20 } as { a: number } // no error  
    // b: {} as { a: number } // no error (!!!)  
}  
  • satisfies
// สะดวกและปลอดภัย  
const object = {  
    a: 10,  
    b: { a: 10, b: 20 } satisfies { a: number } // no error  
    // b: {} satisfies { a: number } // error  
}  

3 ความคิดเห็น

 
yangeok 2022-09-19

ส่วนตัวรู้สึกเสียดายเหมือนกันนะว่า ถ้าตัด const assertion ออกแล้วใส่ satisfies เข้าไปแทนน่าจะดีกว่า,,

 
yangeok 2022-09-19

อ๊ะ const assertion -> เป็นแค่ assertion ธรรมดาครับ

 
kyc1682 2022-09-14

รู้สึกว่ามันซับซ้อนขึ้นเรื่อย ๆ เลย T_T