Microsoft/TypeScript
Ver no GitHubOnly `null` and `undefined` included in later overloads during inference between overloads
Open
#47.586 aberto em 25 de jan. de 2022
Help WantedNeeds Investigation
Métricas do repositório
- Stars
- (48.455 stars)
- Métricas de merge de PR
- (Mesclagem média 6d 17h) (9 fundiu PRs em 30d)
Description
Bug Report
🔎 Search Terms
overload null undefined
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I wrote the FAQ
⏯ Playground Link
Playground link with relevant code
💻 Code
This is a bit over-reduced but it's still weird
declare function callIt<T>(func: {
(): T;
(): T;
}): T;
declare function overloaded(): string;
declare function overloaded(): number | null;
// m: string | null. Where'd number go?
const m = callIt(overloaded);
🙁 Actual behavior
m: string | null
🙂 Expected behavior
m: string | number | null
This feels intentional since it only null and undefined make it out of the second signature, but I can't find where we do this or what the motivation behind it is.