File tree Expand file tree Collapse file tree 2 files changed +34
-10
lines changed
Expand file tree Collapse file tree 2 files changed +34
-10
lines changed Original file line number Diff line number Diff line change 1- // Readonly<T> : ReadOnly는 읽기 전용으로 된다. 이후 값을 변경하려고 하면 error가 발생한다.
1+ // Record<K,T> : Record는 다른 유틸리티 타입과 단리 key와 type을 가지고 있다.
2+ //User와 같이 key값을 활용해서 유니온 타입으로 사용할 수 있지만 GradeRecord, ScoreRecord와 같이 key와 type을 따로 지정해서 사용할 수도 있다.
3+ import {
4+ ScoreFor , GradeRecord ,
5+ ScoreRecord ,
6+ User
7+ } from "./utils/data.interface"
28
3- import { User } from "./utils/data.interface"
9+ const score : Record < GradeRecord , ScoreRecord > = {
10+ 1 : 'A' ,
11+ 2 : 'B' ,
12+ 3 : 'C' ,
13+ 4 : 'D' ,
14+ } ;
415
5- let admin : Readonly < User > = {
6- id : 1 ,
7- name : "Bob" ,
8- age : 30 ,
9- }
16+ //응용
1017
11- // admin.id = 2; // error-> readonly로 인한 error 발생
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 ;
25+ }
Original file line number Diff line number Diff line change @@ -79,5 +79,15 @@ export interface InterToy {
7979export interface User {
8080 id : number ;
8181 name : string ;
82- age ?: number ;
83- }
82+ age : number ;
83+ }
84+
85+ export interface ScoreFor {
86+ '1' : 'A' | 'B' | 'C' | 'D' ;
87+ '2' : 'A' | 'B' | 'C' | 'D' ;
88+ '3' : 'A' | 'B' | 'C' | 'D' ;
89+ '4' : 'A' | 'B' | 'C' | 'D' ;
90+ }
91+
92+ export type GradeRecord = '1' | '2' | '3' | '4' ;
93+ export type ScoreRecord = 'A' | 'B' | 'C' | 'D' ;
You can’t perform that action at this time.
0 commit comments