2018-03-21 19:13:39 +01:00
|
|
|
// #22362
|
|
|
|
interface MyPromise<T, U> {
|
|
|
|
then(cb: (t: T) => void): void;
|
|
|
|
thenUnion(cb: (t: T | U) => void): this;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface DoNothingAlias<T, U> extends MyPromise<T, U> { }
|
|
|
|
|
|
|
|
declare function shouldBeIdentity<T, U>(p: DoNothingAlias<T, U>): MyPromise<T, U>;
|
|
|
|
|
|
|
|
declare const p1: MyPromise<boolean, any>;
|
|
|
|
var p2 = shouldBeIdentity(p1);
|
2019-02-11 00:18:45 +01:00
|
|
|
var p2: MyPromise<boolean, any>;
|