Microsoft/TypeScript
Ver no GitHub`satisfies` changes the generic type, "resolves" it immediately
Open
#52.394 aberto em 24 de jan. de 2023
BugDomain: check: Type InferenceHelp Wanted
Métricas do repositório
- Stars
- (48.455 stars)
- Métricas de merge de PR
- (Mesclagem média 6d 17h) (9 fundiu PRs em 30d)
Description
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