TypeScript 4.9: มาใช้ satisfies เพื่อทำให้ Type ถูกต้องมากขึ้นกันเถอะ
2022-11-23
อย่างที่รู้กันว่าตอนนี้ TypeScript 4.9 release ออกมาแล้ว มี feature หนึ่งที่น่าสนใจคือ satisfies
Ex.1 - Safe Upcast
;
;
; // works
; // throws error
; // valid operation as myColor is a string
Ex.2 - Safe Upcast
;
; // Missing meows!
if p.kind === "dog" else
Solution
;
Ex.3 - Property Name Constraining
;
// Should be OK -- retain info that a is number and b is string
;
;
// Should error even though 'd' is in 'Keys'
;
Solution
p2 satisfies Partial<Record<Keys, unknown>>;
EX.4 - Property Name Fulfillment
;
// Should be OK
;
Solution
p3 satisfies Record<Keys, unknown>;;
;
// All of these should be Colors, but I only use some of them here.
;
ขอบคุณตัวอย่างจาก https://github.com/microsoft/TypeScript/issues/47920
ศึกษาเพิ่ม
https://www.youtube.com/watch?v=6uJeT7y6CCo