Microsoft/TypeScript

Interface Overload Generic Member - Compiler error when removing overload

Offen

#51.370 geöffnet am 01.11.2022

 (5 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)TypeScript (13.395 Forks)batch import
BugDomain: check: Type InferenceHelp Wanted

Repository-Metriken

Stars
 (108.860 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

Bug Report

Removing an overload member Controller.handle from Controller causes a compilation error.

🔎 Search Terms

  • Interface overload
  • Member Type Parameter
  • Works When Removing overload

⏯ Playground Link

Playground

💻 Code

Code below compiles

export interface Controller {
  handle<T>(httpRequest: HttpRequest<T>): HttpResponse<T>;
  handle<TRequest, TResponse>(httpRequest: HttpRequest<TRequest>): HttpResponse<TResponse>;
}

Code below does not compile

export interface Controller {
  // handle<T>(httpRequest: HttpRequest<T>): HttpResponse<T>;
  handle<TRequest, TResponse>(httpRequest: HttpRequest<TRequest>): HttpResponse<TResponse>;
}

Code below does not compile

export interface Controller {
  handle<T>(httpRequest: HttpRequest<T>): HttpResponse<T>;
  // handle<TRequest, TResponse>(httpRequest: HttpRequest<TRequest>): HttpResponse<TResponse>;
}

🙁 Actual behavior

Code does not compile when removing any of the overloads.

🙂 Expected behavior

Since having an overload in Controller.handle works, having just one member with the correct signature should also work.

Additional Info

Contributor Guide