1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
=== tests/cases/compiler/optionalFunctionArgAssignability.ts ===
interface Promise<T> {
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(optionalFunctionArgAssignability.ts, 0, 0))
>T : Symbol(T, Decl(lib.es5.d.ts, --, --), Decl(optionalFunctionArgAssignability.ts, 0, 18))
then<U>(onFulfill?: (value: T) => U, onReject?: (reason: any) => U): Promise<U>;
>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --), Decl(optionalFunctionArgAssignability.ts, 0, 22))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 1, 9))
>onFulfill : Symbol(onFulfill, Decl(optionalFunctionArgAssignability.ts, 1, 12))
>value : Symbol(value, Decl(optionalFunctionArgAssignability.ts, 1, 25))
>T : Symbol(T, Decl(lib.es5.d.ts, --, --), Decl(optionalFunctionArgAssignability.ts, 0, 18))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 1, 9))
>onReject : Symbol(onReject, Decl(optionalFunctionArgAssignability.ts, 1, 40))
>reason : Symbol(reason, Decl(optionalFunctionArgAssignability.ts, 1, 53))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 1, 9))
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(optionalFunctionArgAssignability.ts, 0, 0))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 1, 9))
}
var a = function then<U>(onFulfill?: (value: string) => U, onReject?: (reason: any) => U): Promise<U> { return null };
>a : Symbol(a, Decl(optionalFunctionArgAssignability.ts, 4, 3))
>then : Symbol(then, Decl(optionalFunctionArgAssignability.ts, 4, 7))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 4, 22))
>onFulfill : Symbol(onFulfill, Decl(optionalFunctionArgAssignability.ts, 4, 25))
>value : Symbol(value, Decl(optionalFunctionArgAssignability.ts, 4, 38))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 4, 22))
>onReject : Symbol(onReject, Decl(optionalFunctionArgAssignability.ts, 4, 58))
>reason : Symbol(reason, Decl(optionalFunctionArgAssignability.ts, 4, 71))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 4, 22))
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(optionalFunctionArgAssignability.ts, 0, 0))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 4, 22))
var b = function then<U>(onFulFill?: (value: number) => U, onReject?: (reason: any) => U): Promise<U> { return null };
>b : Symbol(b, Decl(optionalFunctionArgAssignability.ts, 5, 3))
>then : Symbol(then, Decl(optionalFunctionArgAssignability.ts, 5, 7))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 5, 22))
>onFulFill : Symbol(onFulFill, Decl(optionalFunctionArgAssignability.ts, 5, 25))
>value : Symbol(value, Decl(optionalFunctionArgAssignability.ts, 5, 38))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 5, 22))
>onReject : Symbol(onReject, Decl(optionalFunctionArgAssignability.ts, 5, 58))
>reason : Symbol(reason, Decl(optionalFunctionArgAssignability.ts, 5, 71))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 5, 22))
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(optionalFunctionArgAssignability.ts, 0, 0))
>U : Symbol(U, Decl(optionalFunctionArgAssignability.ts, 5, 22))
a = b; // error because number is not assignable to string
>a : Symbol(a, Decl(optionalFunctionArgAssignability.ts, 4, 3))
>b : Symbol(b, Decl(optionalFunctionArgAssignability.ts, 5, 3))
|