輸入引數作為約束
使用 TypeScript 1.8,型別引數約束可以從同一型別引數列表中引用型別引數。以前這是一個錯誤。
function assign<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 };
assign(x, { b: 10, d: 20 });
assign(x, { e: 0 }); // Error