gpt4 book ai didi

Typescript 没有根据回调返回类型选择正确的重载

转载 作者:搜寻专家 更新时间:2023-10-30 20:41:16 25 4
gpt4 key购买 nike

给定以下代码( Playground 链接:http://bit.ly/1n7Fcow)

declare function pick<T, V>(f:(x:T, y:V) => V):V;
declare function pick<T, V>(f:(x:T, y:V) => T):T;
var xx = pick((x: number, y:string) => x);
var yy = pick((x: number, y:string) => y);

TypeScript 选择了不正确的重载,无法推断 xx 的类型。

是否可以让 typescript 在那里选择正确的重载?

注意:为了避免 XY 问题,这是原始问题 - http://bit.ly/QXaQGc - 我需要这种重载才能正确建模 promise 。

最佳答案

通过更改对此的调用,我能够让 playground 正确推断出 xx 和 yy 的正确类型:

declare function pick<T, V>( f:(x:T, y:V) => V ):V;
declare function pick<T, V>( f:(x:T, y:V) => T ):T;

var xx = pick<number,string>((x, y) => x);
var yx = pick<number,string>((x, y) => y);

参见此处:http://bit.ly/1p6h8iP希望对您有所帮助。

关于Typescript 没有根据回调返回类型选择正确的重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23726527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com