Microsoft/TypeScript

Missing errors in generic functions in context-sensitive arguments

Open

#61.979 geöffnet am 30. Juni 2025

Auf GitHub ansehen
 (0 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)TypeScript (6.726 Forks)batch import
BugDomain: check: Contextual TypesHelp Wanted

Repository-Metriken

Stars
 (48.455 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)

Beschreibung

🔎 Search Terms

error generic type parameter inferred context senstivie contextual parameter

🕗 Version & Regression Information

  • This is the behavior in every version I tried

⏯ Playground Link

https://www.typescriptlang.org/play/?ts=5.9.0-dev.20250627#code/CYUwxgNghgTiAEAzArgOzAFwJYHtVNQB4AFAPgAow9EsBzALngG8AoeeMKCCAIyjADWjcgAdYUALYBnRsQCU8ALyl4lPBhAAPDI1TIJPEDAA08MTEkz48pSr0GjAbjbw0caBuAB+YbAbwpDBgsVFoFZXgANxwsYGcAXzlhc0tZcLt9QxhnFi0RHBgMDjxA+DgpZAgixQJyVnZObj5BRkIAFWMKFOlGNvTmF3Y4DGQYfHIoRh4cHAgQKFRTHn6J+C94AEZ4RgAGOUd4AHpD+AwACywpALOcSuB4IxgCgJwJEAB3M6MQJZm5hfgAEJFDV7FkXPFjC43CAPCBgMIAPr9JiQliJZxAA

💻 Code

declare function fn<P>(config: {
  callback: (params: P) => (context: number, params: P) => number;
  unrelated?: (arg: string) => void;
}): (params: P) => number;

export const result = fn({
  callback: <T,>(params: T) => {
    return (a: boolean, b) => (a ? 1 : 0); // this should error somewhere, boolean !== number
  },
  unrelated: (_) => {},
});

🙁 Actual behavior

No error

🙂 Expected behavior

It should error

Additional information about the issue

By hovering => we can see function<T>(params: T): {}. This indicates anyFunctionType leaked into .resolvedReturnType of that signature.

Contributor Guide