Microsoft/TypeScript
Interface Overload Generic Member - Compiler error when removing overload
开放
#51,370 创建于 2022年11月1日
BugDomain: check: Type InferenceHelp Wanted
仓库指标
- 星标
- (108,860 个星标)
- PR 合并指标
- (PR 指标待抓取)
描述
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.