TypeScript/tests/baselines/reference/genericIsNeverEmptyObject.types
Anders Hejlsberg c456bbd466
Support re-aliasing of type alias instantiations (#42284)
* New aliases for type alias instantiations

* New aliases for conditional, mapped, and anonymous object type instantiations

* Accept new baselines

* Fix issues with re-aliasing

* Accept new baselines
2021-01-11 13:29:46 -10:00

37 lines
909 B
Plaintext

=== tests/cases/compiler/genericIsNeverEmptyObject.ts ===
// Repro from #29067
function test<T extends { a: string }>(obj: T) {
>test : <T extends { a: string; }>(obj: T) => Omit<T, "a"> & { b: string; }
>a : string
>obj : T
let { a, ...rest } = obj;
>a : string
>rest : Omit<T, "a">
>obj : T
return { ...rest, b: a };
>{ ...rest, b: a } : Omit<T, "a"> & { b: string; }
>rest : Omit<T, "a">
>b : string
>a : string
}
let o1 = { a: 'hello', x: 42 };
>o1 : { a: string; x: number; }
>{ a: 'hello', x: 42 } : { a: string; x: number; }
>a : string
>'hello' : "hello"
>x : number
>42 : 42
let o2: { b: string, x: number } = test(o1);
>o2 : { b: string; x: number; }
>b : string
>x : number
>test(o1) : Omit<{ a: string; x: number; }, "a"> & { b: string; }
>test : <T extends { a: string; }>(obj: T) => Omit<T, "a"> & { b: string; }
>o1 : { a: string; x: number; }