Closed
Description
TypeScript Version: nightly
The following used to work but is broken now.
Code
function extend<T, U>(base: T, ext: U): T & U {
const retval = <T & U> {};
for (const x in base) {
// Error: Type 'T[keyof T]' is not assignable to type '(T & U)[keyof T]'.
retval[x] = base[x];
}
for (const x in ext) {
// Error: Type 'U[keyof U]' is not assignable to type '(T & U)[keyof U]'.
retval[x] = ext[x];
}
return retval;
}