제네릭을 이용한 Group by const groupBy = (array: T[], key: K) => { let map = new Map(); array.forEach(item => { let itemKey = item[key]; if (!map.has(itemKey)) { map.set(itemKey, array.filter(i => i[key] === item[key])); } }); return map; } 위 함수는 제네릭 T의 배열과 T의 key로 소속되어있는 K를 인자로 받는다. array를 순회하며 Map에 Key가 존재하는지 확인 후, 없다면 키를 생성하고 배열 내에 동일한 키를 가진 항목을 Map에 추가한다. const items = [ {type: "dog", name: "fred"}..
Generics
언제나 코드를 작성해야 할 때 고려해야 되는 것은 재사용성이다. Java와 같이 아주 강한 객체지향 언어와 같이 재사용이 가능한 컴포넌트를 만들게 도와주는 것은 TypeScript에도 존재한다. 이름은 제네릭(Generic)이다. 먼저 들어온 인수를 무조건 반환하는 함수를 만들어보자.function fun(num : number):number { return num;}이는 "any" 타입으로도 작성이 가능하다.function fun(num : any):any { return num;}"any" 타입을 사용한다는 것은 num이 어떤 타입이든 받고 반환한다는 의미에서 제네릭이라 할 수 있다. 하지만 이는 반환을 할 때 본질적인 타입을 잃게 된다. 만약 number타입의 값이 들어온다면 반환은 number가 ..