依赖参数的上下文类型

Doo*_*fus 5 typescript

使用联合重载时,是否可以获取函数参数的上下文类型?

declare function f(...args: [x: 'a', y: (a: string) => void] | [x: 'b', y: (a: boolean) => void]): void;

// Parameter 'x' implicitly has an 'any' type.(7006)
f('a', x => {});

declare function g(x: 'a', y: (a: string) => void): void;
declare function g(x: 'b', y: (a: boolean) => void): void;

// Ok.
g('a', x => {});
Run Code Online (Sandbox Code Playgroud)

游乐场链接

特别是在对相关参数进行工作之后,我认为它会起作用吗?是否有一个开放的问题来跟踪这个问题?