🔎 Search Terms
distributive conditional types, naked type parameter, type alias, unions
🕗 Version & Regression Information
- This changed between versions 3.8.3 and 3.9.7.
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about distributive conditional types, naked type parameter, type alias, unions.
⏯ Playground Link
https://www.typescriptlang.org/play/?ts=5.9.3#code/C4TwDgpgBAaghgGwK7QLxQIxQD5QEwBQBokUAKhALZhToDa8yEAulBAB7AQB2AJgM5Q6AS24AzCACdYzAlCgB+WG048BUJNwDW3APYB3bnPmKhMADSxEKWSagAuKNwgA3KccfO3koiWgAlCH4kBGBacioaAHoolUgAYzC6DEssXDxWXDo8VJx8WxMYgD0FIA
💻 Code
type Value = 1 | 2
type Result = [Value] extends [infer V]
? V extends unknown
? [V, Value]
: never
: never
🙁 Actual behavior
🙂 Expected behavior
Additional information about the issue
It shouldn't work the way it does now, for several reasons:
- Value is not naked type parameter.
- Using brackets, distributive behaviour must be disabled.
🔎 Search Terms
distributive conditional types, naked type parameter, type alias, unions
🕗 Version & Regression Information
⏯ Playground Link
https://www.typescriptlang.org/play/?ts=5.9.3#code/C4TwDgpgBAaghgGwK7QLxQIxQD5QEwBQBokUAKhALZhToDa8yEAulBAB7AQB2AJgM5Q6AS24AzCACdYzAlCgB+WG048BUJNwDW3APYB3bnPmKhMADSxEKWSagAuKNwgA3KccfO3koiWgAlCH4kBGBacioaAHoolUgAYzC6DEssXDxWXDo8VJx8WxMYgD0FIA
💻 Code
🙁 Actual behavior
🙂 Expected behavior
Additional information about the issue
It shouldn't work the way it does now, for several reasons: