|
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