Open
Description
TypeScript Version: 4.0.2
Search Terms: generic constraint, extends infer
Code
type InferGenericConstraint<Fn> =
Fn extends <T extends infer Constraint>(arg: T) => any
? Constraint
: never;
type GenericFunctionExample = <T extends number>(arg: T) => void;
type InferredConstraint = InferGenericConstraint<GenericFunctionExample>;
Expected behavior:
- Preferred:
InferredConstraint
isnumber
. - Alternative:
infer
declaration is disallowed within a generic constraint clause.
Actual behavior: InferredConstraint
is never
Playground Link: https://tsplay.dev/gWoYlN
Related Issues: #1213