satisfies: sicheres Upcasting (TypeScript 4.9)
(engineering.ab180.co)-
TypeScript 4.9 soll am 15. November veröffentlicht werden, Beta-Tests sind ab dem 20. September geplant
- Derzeit im Playground als
nightlynutzbar
- Derzeit im Playground als
-
In TypeScript 4.9 wurde das Schlüsselwort
satisfieshinzugefügt -
Anders als das bisherige Schlüsselwort
asunterstützt es sicheres Upcasting -
Ursprünglich war sicheres Upcasting nur möglich, wenn der Typ im Voraus festgelegt war
-
Mit
satisfiesist bequemes und sicheres Upcasting auch für ein einzelnes Key-Value-Paar eines Objekts möglich -
Bisher
// Sicher, aber umständlich, da eine Typdefinition nötig ist (Typdefinition)
const object: {
a: number
b: { a: number }
} = {
a: 10,
b: { a: 10, b: 20 } // no error
// b: {} // error
}
// Bequem, aber nicht sicher (`as`)
const object = {
a: 10,
b: { a: 10, b: 20 } as { a: number } // no error
// b: {} as { a: number } // no error (!!!)
}
satisfies
// Bequem und sicher
const object = {
a: 10,
b: { a: 10, b: 20 } satisfies { a: number } // no error
// b: {} satisfies { a: number } // error
}
3 Kommentare
Ich finde es etwas schade, dass man statt
const assertionliebersatisfieseingefügt hat,,Ah,
const assertion-> das ist einfach nur eine Assertion.Wirkt irgendwie immer komplexer :(