본문 바로가기
✘✘✘ Javascript/Typescript

[type] keyof, typeof 를 사용해 type 지정

by PrettyLog 2023. 4. 8.

예시

const keyToPropertyMap = {
  'on-off': 'active',
  name: 'name',
  appliedTo: 'level',
  frequency: 'period',
};
type SortInfo = {
  key?: keyof typeof keyToPropertyMap; // 
  asc: boolean;
};

질문

  • keyof typeof keyToPropertyMap?

답변

type:: 
keyof typeof keyToPropertyMap = 'on-off' | 'name' | 'appliedTo' | 'frequencyÏ'

설명

이 예에서 keyof typeof keyToPropertyMapkeyToPropertyMap 오브젝트의 키를 나타내는 유형입니다. keyof 연산자는 개체 유형의 키를 가져오는 데 사용되며 typeof는 개체 유형을 가져오는 데 사용됩니다.

따라서 keyof typeof keyToPropertyMap은 "keyToPropertyMap 유형의 키 가져오기"를 의미합니다. 이 경우 keyToPropertyMap의 type은

**{ 
    'on-off': string; 
    name: string; 
    appliedTo: string; 
    frequency: string; 
}** 

이므로 keyof typeof keyToPropertyMap'on-off' | 'name' | 'appliedTo' | 'frequency'.

이 유형은 'SortInfo' 유형에서 'key' 속성의 유형으로 사용됩니다. 따라서 SortInfokeyToPropertyMap의 키 중 하나가 될 수 있는 key 속성과 boolean인 asc 속성으로 개체를 설명하는 유형입니다. 이렇게 하면 key 속성의 값이 올바르게 입력되고 keyToPropertyMap의 유효한 키만 사용하는지 확인할 수 있습니다.

댓글