satisfies: upcasting yang aman (TypeScript 4.9)
(engineering.ab180.co)-
TypeScript 4.9 dijadwalkan rilis pada 15 November, dan beta test akan dimulai pada 20 September
- Saat ini sudah bisa digunakan dalam versi nightly di Playground
-
Keyword
satisfiesditambahkan ke TypeScript 4.9 -
Berbeda dengan keyword
asyang sudah ada, ini mendukung upcasting yang aman -
Sebelumnya, upcasting yang aman hanya dimungkinkan jika tipe sudah ditentukan terlebih dahulu
-
Dengan
satisfies, upcasting yang aman bisa dilakukan dengan nyaman bahkan untuk satu key-value dalam object -
Sebelumnya
// Aman tetapi merepotkan karena harus mendefinisikan tipe (definisi tipe)
const object: {
a: number
b: { a: number }
} = {
a: 10,
b: { a: 10, b: 20 } // no error
// b: {} // error
}
// Praktis tetapi tidak aman (`as`)
const object = {
a: 10,
b: { a: 10, b: 20 } as { a: number } // no error
// b: {} as { a: number } // no error (!!!)
}
satisfies
// Praktis dan aman
const object = {
a: 10,
b: { a: 10, b: 20 } satisfies { a: number } // no error
// b: {} satisfies { a: number } // error
}
3 komentar
Agak disayangkan, saya malah berharap
const assertiondihilangkan dansatisfiesyang dimasukkan,,Ah, itu bukan
const assertion-> hanyaassertionbiasa.Rasanya makin lama makin rumit ya huhu