const names: Array = [];
function merge(objA: object, objB: object) { return Object.assign(objA, objB); } const mergedObj = merge({ name: "Max" }, { age: 30 }); mergedObj.name; // name에 접근 할 수 없다.
형변환을 통해
function merge(objA: object, objB: object) { return Object.assign(objA, objB); } const mergedObj = merge({ name: "Max" }, { age: 30 }) as (name:string ,age:number); mergedObj.name;
형변환을 통해 해결할 수 있지만 번거로움의 문제가 남아있음
function merge<T, U>(objA: T, objB: U) { return Object.assign(objA, objB); } const mergedObj = merge({ name: "Max" }, { age: 30 }); mergedObj.name;
T로 보통 표기되며 아무글자나 상관없으며 어떤 타입이 들어갈지를
정해줄수있다.