Record<K,V>

YOUNGJOO-YOON·2022년 1월 31일
0

typeScript

목록 보기
51/65
post-custom-banner
interface Score {
  '1': 'A' | 'B' | 'C' | 'D';
  '2': 'A' | 'B' | 'C' | 'D';
  '3': 'A' | 'B' | 'C' | 'D';
  '4': 'A' | 'B' | 'C' | 'D';
}
const score: Score = {
  1: 'A',
  2: 'B',
  3: 'C',
  4: 'D',
};

const scoreWithRecord: Record<'1' | '2' | '3' | '4', 'A' | 'B' | 'C' | 'D'> = {
  1: 'A',
  2: 'B',
  3: 'C',
  4: 'D',
};

type Scores = 'A' | 'B' | 'C' | 'D';
type Grades = '1' | '2' | '3' | '4';
const scoreWithTypeRecord: Record<Grades, Scores> = {
  1: 'A',
  2: 'B',
  3: 'C',
  4: 'D',
};
// validate 할 때 Record + keyof
interface User {
  id: number;
  name: string;
  age: number;
}
function isValid(user: User): Record<keyof User, boolean> {
  const result: Record<keyof User, boolean> = {
    id: user.id > 0,
    name: user.name !== '',
    age: user.age > 0,
  };
  return result;
}
profile
이 블로그의 글은 제 생각을 정리한 글과 인터넷 어딘가에서 배운 것을 정리한 글입니다. 출처는 되도록 남기도록 하겠습니다. 수정 및 건의 오류 등이 있으면 언제든지 댓글 부탁드립니다.
post-custom-banner

0개의 댓글