Цитата:
|
А в чем смысл? Использовать разную реализацию в зависимости от входных параметров - это понятно.
|
иногда бывает удобно делать так. Вот например перегрузка функции get из пакета http
get(url: string, options: {
headers?: HttpHeaders,
observe: 'response', params?: HttpParams, reportProgress?: boolean,
responseType: 'arraybuffer', withCredentials?: boolean,
}): Observable<HttpResponse<ArrayBuffer>>;
get(url: string, options: {
headers?: HttpHeaders,
observe: 'response', params?: HttpParams, reportProgress?: boolean,
responseType: 'blob', withCredentials?: boolean,
}): Observable<HttpResponse<Blob>>;
get(url: string, options: {
headers?: HttpHeaders,
observe: 'response', params?: HttpParams, reportProgress?: boolean,
responseType: 'text', withCredentials?: boolean,
}): Observable<HttpResponse<string>>;
а если переписать вместе, получится каша
get(url: string, options: {
headers?: HttpHeaders,
observe: 'response', params?: HttpParams, reportProgress?: boolean,
responseType: 'arraybuffer' | 'blob' | 'text', withCredentials?: boolean,
}): Observable<HttpResponse<ArrayBuffer>> | Observable<HttpResponse<Blob>> | Observable<HttpResponse<string>>;
Цитата:
|
Но плодить пустые функции...
|
Ещё раз - функция будет одна. Всё что до реализации этой самой функции, для интерпретатора, чтобы он не ругался, когда я буду ждать тот или иной возвращаемый тип или передавать в функцию разные параметры.