Closed
Description
TypeScript Version: 2.1.5
Code
Taken from 'Using Type Parameters in Generic Constraints' in the official docs
function copyFields<T extends U, U>(target: T, source: U): T {
for (let id in source) {
target[id] = source[id];
}
return target;
}
let x = { a: 1, b: 2, c: 3, d: 4 };
copyFields(x, { b: 10, d: 20 });
Expected behavior:
Compiles.
Actual behavior:
error TS2322: Type 'U[keyof U]' is not assignable to type 'T[keyof U]'.
Type 'U' is not assignable to type 'T'.