class A { foo: number; } class B extends A { bar: number; } class C extends A { baz: number; } var x2: (a: A) => void = true ? (a: C) => a.foo : (b: number) => { };