Microsoft/TypeScript
在 GitHub 查看Reverse mapped type inference fails to infer from annotated parameters in partially-inferrable object types
Open
#57,788 建立於 2024年3月15日
Domain: Mapped TypesHelp WantedPossible Improvement
倉庫指標
- Star
- (48,455 star)
- PR 合併指標
- (平均合併 6天 17小時) (30 天內合併 9 個 PR)
描述
🔎 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