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