Microsoft/TypeScript
Vedi su GitHub`satisfies` changes the generic type, "resolves" it immediately
Open
#52.394 aperta il 24 gen 2023
BugDomain: check: Type InferenceHelp Wanted
Metriche repository
- Star
- (48.455 star)
- Metriche merge PR
- (Merge medio 6g 17h) (9 PR mergiate in 30 g)
Descrizione
Bug Report
It seems that using satisfies on a value that is bound to a generic type, in some way resolves the generic type at that place.
const foo = <T extends 1 | 2>(bar: T) => {
// PROBLEM: a and b should have the same type.
const a = bar satisfies any; // using any type that doesn't use the generic T here creates this problem
// ^? 1 | 2
const b = bar;
// ^? T extends 1 | 2
}
🔎 Search Terms
satisfies changes type, generic, widening
🕗 Version & Regression Information
Using 4.9.4 now with satisfies and noticed this.
- This changed between versions 4.9 and 4.8 when satisfies was introduced
- This is the behavior in every version I tried, and I reviewed the FAQ
- I was unable to test this on prior versions because satisfies didn't exist
⏯ Playground Link
🙁 Actual behavior
a and b have different types as seen in the playground
🙂 Expected behavior
satisfies should be a no-op