Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nested, infer, inference, unknown
Playground link with relevant code
type Magic<X> = X extends [[infer Y, ...infer _], ...infer _] ? Y : never; type R = Magic<[[number]]> // ❌ unknown type R2 = Magic<[[number, 2]]> // ✅ number type R3 = Magic<[[number], []]> // ✅ number
Magic<[[whatever]]>
unknown
whatever
The text was updated successfully, but these errors were encountered:
Upon further inspection, it looks like removing one of the ... infer would yield correct results.
... infer
Playground Link
type Magic2<X> = X extends [[infer Y, ...infer _]] ? Y : never; type S = Magic2<[[number]]> // ✅ number type S2 = Magic2<[[number, 2]]> // ✅ number type S3 = Magic2<[[number], []]> // ✅ never ///////// type Magic3<X> = X extends [[infer Y], ...infer _] ? Y : never; type T = Magic3<[[number]]> // ✅ number type T2 = Magic3<[[number, 2]]> // ✅ never type T3 = Magic3<[[number], []]> // ✅ number
Sorry, something went wrong.
No branches or pull requests
Bug Report
nested, infer, inference, unknown
Playground link with relevant code
Magic<[[whatever]]>isunknownMagic<[[whatever]]>should bewhateverThe text was updated successfully, but these errors were encountered: