TypeScript/tests/cases/conformance/types/literal/numericLiteralTypes3.ts
2016-07-06 21:01:00 -07:00

100 lines
1.4 KiB
TypeScript

type A = 1;
type B = 2 | 3;
type C = 1 | 2 | 3;
type D = 0 | 1 | 2;
function f1(a: A, b: B, c: C, d: D) {
a = a;
a = b;
a = c;
a = d;
}
function f2(a: A, b: B, c: C, d: D) {
b = a;
b = b;
b = c;
b = d;
}
function f3(a: A, b: B, c: C, d: D) {
c = a;
c = b;
c = c;
c = d;
}
function f4(a: A, b: B, c: C, d: D) {
d = a;
d = b;
d = c;
d = d;
}
function f5(a: A, b: B, c: C, d: D) {
a = 0;
a = 1;
a = 2;
a = 3;
b = 0;
b = 1;
b = 2;
b = 3;
c = 0;
c = 1;
c = 2;
c = 3;
d = 0;
d = 1;
d = 2;
d = 3;
}
function f6(a: A, b: B, c: C, d: D) {
a === 0;
a === 1;
a === 2;
a === 3;
b === 0;
b === 1;
b === 2;
b === 3;
c === 0;
c === 1;
c === 2;
c === 3;
d === 0;
d === 1;
d === 2;
d === 3;
}
function f7(a: A, b: B, c: C, d: D) {
a === a;
a === b;
a === c;
a === d;
b === a;
b === b;
b === c;
b === d;
c === a;
c === b;
c === c;
c === d;
d === a;
d === b;
d === c;
d === d;
}
function f8(x: 0 | 2 | 4) {
switch (x) {
case 0: return;
case 1: return;
case 2: return;
case 3: return;
case 4: return;
case 5: return;
}
}