Closed
Description
separated from #22432
TypeScript Version: 2.7.0-dev.20180307
Search Terms:
Code
type B<R, S> = [R] | [R, S];
declare function g<T, U>(f: B<T, U>): void;
g([[]] as [void[]]); // U: {}
type C<R, S> = [R[]] | [R[], S];
declare function h<T, U>(f: C<T, U>): void;
h([[]] as [void[]]); // U: void[] | ConcatArray<void[]>
Expected behavior:
h([[]] as [void[]]); // U: {}
Actual behavior:
h([[]] as [void[]]); // U: void[] | ConcatArray<void[]>
Playground Link:
Related Issues: