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
|
tests/cases/compiler/switchCasesExpressionTypeMismatch.ts(4,10): error TS2678: Type 'typeof Foo' is not comparable to type '0'.
tests/cases/compiler/switchCasesExpressionTypeMismatch.ts(5,10): error TS2678: Type '"sss"' is not comparable to type '0'.
tests/cases/compiler/switchCasesExpressionTypeMismatch.ts(6,10): error TS2678: Type '123' is not comparable to type '0'.
tests/cases/compiler/switchCasesExpressionTypeMismatch.ts(7,10): error TS2678: Type 'true' is not comparable to type '0'.
tests/cases/compiler/switchCasesExpressionTypeMismatch.ts(16,10): error TS2678: Type 'true' is not comparable to type 'number | "hello"'.
tests/cases/compiler/switchCasesExpressionTypeMismatch.ts(18,10): error TS2678: Type '"world"' is not comparable to type 'number | "hello"'.
==== tests/cases/compiler/switchCasesExpressionTypeMismatch.ts (6 errors) ====
class Foo { }
switch (0) {
case Foo: break; // Error
~~~
!!! error TS2678: Type 'typeof Foo' is not comparable to type '0'.
case "sss": break; // Error
~~~~~
!!! error TS2678: Type '"sss"' is not comparable to type '0'.
case 123: break; // Error
~~~
!!! error TS2678: Type '123' is not comparable to type '0'.
case true: break; // Error
~~~~
!!! error TS2678: Type 'true' is not comparable to type '0'.
}
declare var q: string
declare var r: number | "hello"
switch (r) {
case q: break
case 42: break
case true: break // Error
~~~~
!!! error TS2678: Type 'true' is not comparable to type 'number | "hello"'.
case "hello": break
case "world": break // Error
~~~~~~~
!!! error TS2678: Type '"world"' is not comparable to type 'number | "hello"'.
}
var s: any = 0;
// No error for all
switch (s) {
case Foo: break;
case "sss": break;
case 123: break;
case true: break;
}
|