Promise.catch should have a return type of <TResult>, not T. · Issue #3834 · microsoft/TypeScript

Current implementaiton: interface Promise<T> { then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise</tresult></tresult></tresult></t>