80 lines
1.4 KiB
JavaScript
80 lines
1.4 KiB
JavaScript
//// [additionOperatorWithStringAndEveryType.ts]
|
|
enum E { a, b, c }
|
|
|
|
var a: any;
|
|
var b: boolean;
|
|
var c: number;
|
|
var d: string;
|
|
var e: Object;
|
|
var f: void;
|
|
var g: E;
|
|
|
|
var x: string;
|
|
|
|
// string could plus every type, and the result is always string
|
|
// string as left operand
|
|
var r1 = x + a;
|
|
var r2 = x + b;
|
|
var r3 = x + c;
|
|
var r4 = x + d;
|
|
var r5 = x + e;
|
|
var r6 = x + f;
|
|
var r7 = x + g;
|
|
|
|
// string as right operand
|
|
var r8 = a + x;
|
|
var r9 = b + x;
|
|
var r10 = c + x;
|
|
var r11 = d + x;
|
|
var r12 = e + x;
|
|
var r13 = f + x;
|
|
var r14 = g + x;
|
|
|
|
// other cases
|
|
var r15 = x + E;
|
|
var r16 = x + E.a;
|
|
var r17 = x + '';
|
|
var r18 = x + 0;
|
|
var r19 = x + { a: '' };
|
|
var r20 = x + [];
|
|
|
|
//// [additionOperatorWithStringAndEveryType.js]
|
|
var E;
|
|
(function (E) {
|
|
E[E["a"] = 0] = "a";
|
|
E[E["b"] = 1] = "b";
|
|
E[E["c"] = 2] = "c";
|
|
})(E || (E = {}));
|
|
var a;
|
|
var b;
|
|
var c;
|
|
var d;
|
|
var e;
|
|
var f;
|
|
var g;
|
|
var x;
|
|
// string could plus every type, and the result is always string
|
|
// string as left operand
|
|
var r1 = x + a;
|
|
var r2 = x + b;
|
|
var r3 = x + c;
|
|
var r4 = x + d;
|
|
var r5 = x + e;
|
|
var r6 = x + f;
|
|
var r7 = x + g;
|
|
// string as right operand
|
|
var r8 = a + x;
|
|
var r9 = b + x;
|
|
var r10 = c + x;
|
|
var r11 = d + x;
|
|
var r12 = e + x;
|
|
var r13 = f + x;
|
|
var r14 = g + x;
|
|
// other cases
|
|
var r15 = x + E;
|
|
var r16 = x + 0 /* a */;
|
|
var r17 = x + '';
|
|
var r18 = x + 0;
|
|
var r19 = x + { a: '' };
|
|
var r20 = x + [];
|