Skip to content
New issue

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

type-challenges-solutions/en/easy-parameters #317

Open
utterances-bot opened this issue Jan 6, 2023 · 3 comments
Open

type-challenges-solutions/en/easy-parameters #317

utterances-bot opened this issue Jan 6, 2023 · 3 comments

Comments

@utterances-bot
Copy link

Parameters

This project is aimed at helping you better understand how the type system works, writing your own utilities, or just having fun with the challenges.

https://ghaiklor.github.io/type-challenges-solutions/en/easy-parameters.html

Copy link
Contributor

Hey!

Maybe we can add

type MyParameters<T extends Function> = ...

@ghaiklor
Copy link
Owner

ghaiklor commented Jan 6, 2023

@AurelienWebnation Personally, I don't see the reason for that because we check it with conditional type anyway…

Copy link
Contributor

type MyParameters<T> = T extends (...args: infer P) => any ? P : never;
type Foo = MyParameters<string>; // Foo = never
type MyParameters<T extends Function> = T extends (...args: infer P) => any ? P : never;
type Foo = MyParameters<string>; // Error on string : Type 'string' does not satisfy the constraint 'Function'

So the second solution is an alternative to have an error directly on My Parameters type if we don't pass a function. But it's just an idea ahah!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants