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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
=== tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperators01.ts ===
let abc: "ABC" = "ABC";
>abc : "ABC"
>"ABC" : "ABC"
let xyz: "XYZ" = "XYZ";
>xyz : "XYZ"
>"XYZ" : "XYZ"
let abcOrXyz: "ABC" | "XYZ" = abc || xyz;
>abcOrXyz : "ABC" | "XYZ"
>abc || xyz : "ABC" | "XYZ"
>abc : "ABC"
>xyz : "XYZ"
let abcOrXyzOrNumber: "ABC" | "XYZ" | number = abcOrXyz || 100;
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
>abcOrXyz || 100 : "ABC" | "XYZ" | 100
>abcOrXyz : "ABC" | "XYZ"
>100 : 100
let a = "" + abc;
>a : string
>"" + abc : string
>"" : ""
>abc : "ABC"
let b = abc + "";
>b : string
>abc + "" : string
>abc : "ABC"
>"" : ""
let c = 10 + abc;
>c : string
>10 + abc : string
>10 : 10
>abc : "ABC"
let d = abc + 10;
>d : string
>abc + 10 : string
>abc : "ABC"
>10 : 10
let e = xyz + abc;
>e : string
>xyz + abc : string
>xyz : "XYZ"
>abc : "ABC"
let f = abc + xyz;
>f : string
>abc + xyz : string
>abc : "ABC"
>xyz : "XYZ"
let g = true + abc;
>g : string
>true + abc : string
>true : true
>abc : "ABC"
let h = abc + true;
>h : string
>abc + true : string
>abc : "ABC"
>true : true
let i = abc + abcOrXyz + xyz;
>i : string
>abc + abcOrXyz + xyz : string
>abc + abcOrXyz : string
>abc : "ABC"
>abcOrXyz : "ABC" | "XYZ"
>xyz : "XYZ"
let j = abcOrXyz + abcOrXyz;
>j : string
>abcOrXyz + abcOrXyz : string
>abcOrXyz : "ABC" | "XYZ"
>abcOrXyz : "ABC" | "XYZ"
let k = +abcOrXyz;
>k : number
>+abcOrXyz : number
>abcOrXyz : "ABC" | "XYZ"
let l = -abcOrXyz;
>l : number
>-abcOrXyz : number
>abcOrXyz : "ABC" | "XYZ"
let m = abcOrXyzOrNumber + "";
>m : string
>abcOrXyzOrNumber + "" : string
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
>"" : ""
let n = "" + abcOrXyzOrNumber;
>n : string
>"" + abcOrXyzOrNumber : string
>"" : ""
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
let o = abcOrXyzOrNumber + abcOrXyz;
>o : string
>abcOrXyzOrNumber + abcOrXyz : string
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
>abcOrXyz : "ABC" | "XYZ"
let p = abcOrXyz + abcOrXyzOrNumber;
>p : string
>abcOrXyz + abcOrXyzOrNumber : string
>abcOrXyz : "ABC" | "XYZ"
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
let q = !abcOrXyzOrNumber;
>q : boolean
>!abcOrXyzOrNumber : boolean
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
let r = ~abcOrXyzOrNumber;
>r : number
>~abcOrXyzOrNumber : number
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
let s = abcOrXyzOrNumber < abcOrXyzOrNumber;
>s : boolean
>abcOrXyzOrNumber < abcOrXyzOrNumber : boolean
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
let t = abcOrXyzOrNumber >= abcOrXyz;
>t : boolean
>abcOrXyzOrNumber >= abcOrXyz : boolean
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
>abcOrXyz : "ABC" | "XYZ"
let u = abc === abcOrXyz;
>u : boolean
>abc === abcOrXyz : boolean
>abc : "ABC"
>abcOrXyz : "ABC" | "XYZ"
let v = abcOrXyz === abcOrXyzOrNumber;
>v : boolean
>abcOrXyz === abcOrXyzOrNumber : boolean
>abcOrXyz : "ABC" | "XYZ"
>abcOrXyzOrNumber : number | "ABC" | "XYZ"
|