사용할 제네릭(generic) 클래스의 기본 구조
Map<k,v>
type RoutineExerciseItemDto = {
exerciseName: string;
bodyPart: string;
};
type RoutineData = {
id: number;
name: string;
routine: RoutineExerciseItemDto[];
};
const expampleMap = new Map<number, RoutineData>();
routineMap.set(1, {
id: 101,
name: "Chest Day",
routine: [/* RoutineExerciseItemDto 객체들 */]
});
-> 1 이 key 가되고 {} 가 value 가 된다.
위의 exampleMap을 이용하여 파이썬의 딕션너리와 비슷하게 만들어보기
const routines = [
{
id: 101,
name: "Chest Day",
exercises: [
{ exerciseName: "Bench Press", bodyPart: "Chest" },
{ exerciseName: "Push-up", bodyPart: "Chest" },
],
},
{
id: 102,
name: "Leg Day",
exercises: [
{ exerciseName: "Squat", bodyPart: "Legs" },
{ exerciseName: "Lunge", bodyPart: "Legs" },
],
},
{
id: 103,
name: "Back Day",
exercises: [
{ exerciseName: "Deadlift", bodyPart: "Back" },
{ exerciseName: "Pull-up", bodyPart: "Back" },
],
}
];
// 루프를 이용한 Map 초기화
routines.forEach((routine, index) => {
routineMap.set(index + 1, {
id: routine.id,
name: routine.name,
stationary: routine.exercises,
});
});
각 key 에 해당하는 값 불러오기
routineMap.get(1);
// 반환 값
// {
// id: 101,
// name: "Chest Day",
// stationary: [...]
// }
'프로그래밍 > TypeScript' 카테고리의 다른 글
[TS] index signature (0) | 2024.08.03 |
---|---|
[ TS ] DTO object 구현 (0) | 2024.08.03 |
[ TS ] 불변객체 immutable 장점 / 단점 / 구현방법 (0) | 2024.07.28 |
[ TS ] 비밀번호 암호화 (bcypt) (0) | 2024.06.13 |
[ TS ] tsconfig.json 의 내용 정리 (0) | 2024.06.08 |