We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
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.
Successfully merging a pull request may close this issue.
Bug Report
🔎 Search Terms
nested, infer, inference, unknown
🕗 Version & Regression Information
⏯ Playground Link
Playground link with relevant code
💻 Code
🙁 Actual behavior
Magic<[[whatever]]>
isunknown
🙂 Expected behavior
Magic<[[whatever]]>
should bewhatever
The text was updated successfully, but these errors were encountered: