6
考慮下面的代碼正確的過載(遊樂場鏈接: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);
打字稿選擇了不正確的過載,無法推斷xx
類型。
是否有可能讓打字稿在那裏選擇正確的過載?
注意:爲了避免XY問題,這是最初的問題 - http://bit.ly/QXaQGc - 我需要這種重載,以便能夠正確地對承諾進行建模。
因此,在原始問題中,即使所有類型都已知,我仍然必須使用v1.then(n => join2(n,n.toString()))。猜猜我必須提交一個bug ... –
我同意你的觀點,typescript應該能夠推斷從參數類型返回的類型和返回的實際類型。使用underscore.js時,我遇到同樣的問題,解決它的唯一方法是輸入泛型參數。 – micurs