|
97 | 97 | /** @type {string} */ |
98 | 98 | var s; |
99 | 99 | var a = ("" + 4); |
100 | | -var s = "" + (4); |
| 100 | +var s = "" +/** @type {*} */ (4); |
101 | 101 | var SomeBase = (function () { |
102 | 102 | function SomeBase() { |
103 | 103 | this.p = 42; |
@@ -128,19 +128,19 @@ var someBase = new SomeBase(); |
128 | 128 | var someDerived = new SomeDerived(); |
129 | 129 | var someOther = new SomeOther(); |
130 | 130 | var someFakeClass = new SomeFakeClass(); |
131 | | -someBase = (someDerived); |
132 | | -someBase = (someBase); |
133 | | -someBase = (someOther); // Error |
134 | | -someDerived = (someDerived); |
135 | | -someDerived = (someBase); |
136 | | -someDerived = (someOther); // Error |
137 | | -someOther = (someDerived); // Error |
138 | | -someOther = (someBase); // Error |
139 | | -someOther = (someOther); |
| 131 | +someBase =/** @type {SomeBase} */ (someDerived); |
| 132 | +someBase =/** @type {SomeBase} */ (someBase); |
| 133 | +someBase =/** @type {SomeBase} */ (someOther); // Error |
| 134 | +someDerived =/** @type {SomeDerived} */ (someDerived); |
| 135 | +someDerived =/** @type {SomeDerived} */ (someBase); |
| 136 | +someDerived =/** @type {SomeDerived} */ (someOther); // Error |
| 137 | +someOther =/** @type {SomeOther} */ (someDerived); // Error |
| 138 | +someOther =/** @type {SomeOther} */ (someBase); // Error |
| 139 | +someOther =/** @type {SomeOther} */ (someOther); |
140 | 140 | someFakeClass = someBase; |
141 | 141 | someFakeClass = someDerived; |
142 | 142 | someBase = someFakeClass; // Error |
143 | | -someBase = (someFakeClass); |
| 143 | +someBase =/** @type {SomeBase} */ (someFakeClass); |
144 | 144 | // Type assertion cannot be a type-predicate type |
145 | 145 | /** @type {number | string} */ |
146 | 146 | var numOrStr; |
|
0 commit comments