π Search Terms
"class" "extends" "constraint" "infer" "unknown"
π Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about "infer"
β― Playground Link
https://www.typescriptlang.org/play/?#code/MYGwhgzhAECCA8AVAfNA3gWAFDWgWwFMAXACwHsATeAVWgIA8iCA7CmFACjACcBzALmjUAlOgC+2CVmyhIMAEJJUDJqxgIU47NiIBPAA4FoAYTLduBYEWgBeaIoBGZMiAJhmyxizb34AS2YAMwJuaE0AfjDoQWYCADcQgG5oAHoU6CcXN2YdAyMASWZgMwsrW19M13dPVR8EAODQiKiY+KTU9IBXZgBrZjIAdxysIA
π» Code
class A<T> {
method<U extends T>(arg: U) {}
}
class B<T> extends A<T> {}
type Correct = B<boolean> extends B<infer T> ? T : never; // boolean
type Incorrect = B<boolean> extends A<infer T> ? T : never; // unknown
π Actual behavior
Incorrect is evaluated to unknown
π Expected behavior
Incorrect is evaluated to boolean
Additional information about the issue
No response
π Search Terms
"class" "extends" "constraint" "infer" "unknown"
π Version & Regression Information
β― Playground Link
https://www.typescriptlang.org/play/?#code/MYGwhgzhAECCA8AVAfNA3gWAFDWgWwFMAXACwHsATeAVWgIA8iCA7CmFACjACcBzALmjUAlOgC+2CVmyhIMAEJJUDJqxgIU47NiIBPAA4FoAYTLduBYEWgBeaIoBGZMiAJhmyxizb34AS2YAMwJuaE0AfjDoQWYCADcQgG5oAHoU6CcXN2YdAyMASWZgMwsrW19M13dPVR8EAODQiKiY+KTU9IBXZgBrZjIAdxysIA
π» Code
π Actual behavior
Incorrectis evaluated tounknownπ Expected behavior
Incorrectis evaluated tobooleanAdditional information about the issue
No response