Closed
Description
TypeScript Version: 1.8/Playground
Code
interface A {
a: boolean;
}
interface B {
b: boolean;
}
declare const fooAB: (() => A) & (() => B);
const ab = fooAB(); // A
Expected behavior: ab
has type A & B
Actual behavior: ab
has type A
Perhaps this is being treated as an overloaded call signature, and () => A
just happens to be first. If this is by design, it would be great to learn about any known workarounds.
cc @kevinder