16 lines
322 B
JavaScript
16 lines
322 B
JavaScript
type A = {a: number};
|
|
type B = {b: number};
|
|
type C = {c: number};
|
|
|
|
type T1 = (A | B) & C;
|
|
function f1(x: T1): T1 { return x; }
|
|
|
|
type T2 = (A & B) | C;
|
|
function f2(x: T2): T2 { return x; }
|
|
|
|
type T3 = (A & C) | (B & C);
|
|
function f3(x: T3): T3 { return x; }
|
|
|
|
type T4 = (A | C) & (B | C);
|
|
function f4(x: T4): T4 { return x; }
|