TypeScript/tests/baselines/reference/additionOperatorWithUndefinedValueAndValidOperator.types
2015-04-15 16:44:20 -07:00

130 lines
2.2 KiB
Plaintext

=== tests/cases/conformance/expressions/binaryOperators/additionOperator/additionOperatorWithUndefinedValueAndValidOperator.ts ===
// If one operand is the null or undefined value, it is treated as having the type of the other operand.
enum E { a, b, c }
>E : E
>a : E
>b : E
>c : E
var a: any;
>a : any
var b: number;
>b : number
var c: E;
>c : E
>E : E
var d: string;
>d : string
// undefined + any
var r1: any = undefined + a;
>r1 : any
>undefined + a : any
>undefined : undefined
>a : any
var r2: any = a + undefined;
>r2 : any
>a + undefined : any
>a : any
>undefined : undefined
// undefined + number/enum
var r3 = undefined + b;
>r3 : number
>undefined + b : number
>undefined : undefined
>b : number
var r4 = undefined + 1;
>r4 : number
>undefined + 1 : number
>undefined : undefined
>1 : number
var r5 = undefined + c;
>r5 : number
>undefined + c : number
>undefined : undefined
>c : E
var r6 = undefined + E.a;
>r6 : number
>undefined + E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
var r7 = undefined + E['a'];
>r7 : number
>undefined + E['a'] : number
>undefined : undefined
>E['a'] : E
>E : typeof E
>'a' : string
var r8 = b + undefined;
>r8 : number
>b + undefined : number
>b : number
>undefined : undefined
var r9 = 1 + undefined;
>r9 : number
>1 + undefined : number
>1 : number
>undefined : undefined
var r10 = c + undefined
>r10 : number
>c + undefined : number
>c : E
>undefined : undefined
var r11 = E.a + undefined;
>r11 : number
>E.a + undefined : number
>E.a : E
>E : typeof E
>a : E
>undefined : undefined
var r12 = E['a'] + undefined;
>r12 : number
>E['a'] + undefined : number
>E['a'] : E
>E : typeof E
>'a' : string
>undefined : undefined
// undefined + string
var r13 = undefined + d;
>r13 : string
>undefined + d : string
>undefined : undefined
>d : string
var r14 = undefined + '';
>r14 : string
>undefined + '' : string
>undefined : undefined
>'' : string
var r15 = d + undefined;
>r15 : string
>d + undefined : string
>d : string
>undefined : undefined
var r16 = '' + undefined;
>r16 : string
>'' + undefined : string
>'' : string
>undefined : undefined