Skip to content

Commit a401a66

Browse files
committed
🚩: Pick을 사용하는 방법
1 parent 8d3df4c commit a401a66

File tree

2 files changed

+9
-24
lines changed

2 files changed

+9
-24
lines changed

src/index.ts

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,9 @@
1-
// Record<K,T> : Record는 다른 유틸리티 타입과 단리 key와 type을 가지고 있다.
2-
//User와 같이 key값을 활용해서 유니온 타입으로 사용할 수 있지만 GradeRecord, ScoreRecord와 같이 key와 type을 따로 지정해서 사용할 수도 있다.
1+
// Pick<K,T> : Pick은 내가 원하는 Type만 가지고 와서 사용할 수 있다.
32
import {
4-
ScoreFor, GradeRecord,
5-
ScoreRecord,
6-
User
3+
GradeType, ScoreType, User
74
} from "./utils/data.interface"
85

9-
const score: Record<GradeRecord, ScoreRecord> = {
10-
1: 'A',
11-
2: 'B',
12-
3: 'C',
13-
4: 'D',
14-
};
15-
16-
//응용
17-
18-
function isValid(user: User) {
19-
const result: Record<keyof User, boolean> = {
20-
id: user.id > 0,
21-
name: user.name !== "",
22-
age: user.age > 0,
23-
};
24-
return result;
6+
const admin: Pick<User, "id" | "name"> = {
7+
id: 0,
8+
name: 'Bob',
259
}

src/utils/data.interface.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,15 @@ export interface User {
8080
id: number;
8181
name: string;
8282
age: number;
83+
gender: "M" | "F"
8384
}
8485

85-
export interface ScoreFor {
86+
export interface ScoreTemp {
8687
'1': 'A' | 'B' | 'C' | 'D';
8788
'2': 'A' | 'B' | 'C' | 'D';
8889
'3': 'A' | 'B' | 'C' | 'D';
8990
'4': 'A' | 'B' | 'C' | 'D';
9091
}
9192

92-
export type GradeRecord = '1' | '2' | '3' | '4';
93-
export type ScoreRecord = 'A' | 'B' | 'C' | 'D';
93+
export type GradeType = '1' | '2' | '3' | '4';
94+
export type ScoreType = 'A' | 'B' | 'C' | 'D';

0 commit comments

Comments
 (0)