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 infer from generic function #32170

Closed
Pomar81 opened this issue Jun 28, 2019 · 3 comments
Closed

type infer from generic function #32170

Pomar81 opened this issue Jun 28, 2019 · 3 comments
Labels
Question An issue which isn't directly actionable in code

Comments

@Pomar81
Copy link

Pomar81 commented Jun 28, 2019

TypeScript Version: 3.5.1-3.5.2

Search Terms:
infer type from generic function

Code

type genericProps<T> = {
  abcId: string
  count: number
  flag: boolean
  className?: string
  as?: T
}


declare function genericFC<T>(props: genericProps<T>): any 

type test<T> = typeof genericFC extends <T>(props: infer P) => any ? P : never

Expected behavior:

 {
    abcId: string
    count: number
    flag: boolean
    className?: string
    as?: T
  }

Actual behavior:

{
   abcId: string
   count: number
   flag: boolean
   className?: string
   as?: unknown
 }

Playground Link: link

Related Issues:

@RyanCavanaugh
Copy link
Member

RyanCavanaugh commented Jul 2, 2019

This is working as expected. There's no relation between the two Ts in test's declaration; i.e. you could equally have written

type test<T> = typeof genericFC extends <U>(props: infer P) => any ? P : never

I expect what you're trying to do is refer to a specific call instantiation of a generic function, which isn't currently possible.

@RyanCavanaugh RyanCavanaugh added the Question An issue which isn't directly actionable in code label Jul 2, 2019
@Pomar81
Copy link
Author

Pomar81 commented Jul 4, 2019

Yes, I wanted to refer to specific call instantiation of a generic function
e.g
genericFC<'div'>

@ahejlsberg
Copy link
Member

With #47607 it is possible to refer to specific instantiations of generic functions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Question An issue which isn't directly actionable in code
Projects
None yet
Development

No branches or pull requests

4 participants