=== tests/cases/compiler/promises.ts === interface Promise { >Promise : Promise >T : T then(success?: (value: T) => U): Promise; >then : { (success?: (value: T) => U): Promise; (success?: (value: T) => Promise): Promise; } >U : U >success : (value: T) => U >value : T >T : T >U : U >Promise : Promise >U : U then(success?: (value: T) => Promise): Promise; >then : { (success?: (value: T) => U): Promise; (success?: (value: T) => Promise): Promise; } >U : U >success : (value: T) => Promise >value : T >T : T >Promise : Promise >U : U >Promise : Promise >U : U value: T; >value : T >T : T }