Microsoft/TypeScript
Ver no GitHubInterface Overload Generic Member - Compiler error when removing overload
Open
#51.370 aberto em 1 de nov. de 2022
BugDomain: check: Type InferenceHelp Wanted
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
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
💻 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.