Microsoft/TypeScript
GitHub ã§èŠãReverse mapped type inference fails to infer from annotated parameters in partially-inferrable object types
Open
#57,788 opened on 2024幎3æ15æ¥
Domain: Mapped TypesHelp WantedPossible Improvement
Repository metrics
- Stars
- Â (48,455 stars)
- PR merge metrics
-  (å¹³åããŒãž 6d 17h) (30d ã§ 9 merged PRs)
説æ
ð Search Terms
reverse mapped inference annotated parameters partially inferrable noninferrable object context sensitive
ð Version & Regression Information
- This is the behavior in every version I tried
⯠Playground Link
ð» Code
declare function setup<TGuards>(_: {
guards: {
[K in keyof TGuards]: (ctx: unknown, params: TGuards[K]) => boolean;
};
}): TGuards;
const guards = setup({
guards: {
a: () => true,
b: (_, params) => true,
c: (_, params: number) => true,
},
});
guards
// ^? const guards: { a: unknown; b: unknown; c: unknown; }
ð Actual behavior
It infers { a: unknown; b: unknown; c: unknown; }
ð Expected behavior
I'd expect { a: unknown; b: unknown; c: number; } to get inferred here
Additional information about the issue
No response