개발자

타입스크립트 keyof typeof 는 뭔가요?

2022년 10월 05일조회 331

안녕하세요 코드를 보다가 type PackageTypes = keyof typeof Package; 라는 코드를 봤는데 여기서 keyof typeof는 뭔가요? PacakgeTypes에 마우스를 올려보면 "curated" | "drafted" | "single" 이런식으로 나오는데 뭔지 잘 모르겠네요.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

손정현님의 프로필 사진

하나씩 풀어서보면 이해하시기 쉬울 것 같습니다. keyof typeof Package 일단 keyof 부터 보시면 object의 키 값을 읽어온다고 합니다. (https://www.typescriptlang.org/docs/handbook/2/keyof-types.html) 다음 typeof 는 해당 변수의 type을 뜻한다고 합니다. (https://www.typescriptlang.org/docs/handbook/2/typeof-types.html) 마지막 Package는 정보가 없지만 아마도 "curated", "drafted", "single"이라는 정보를 담고 있는 enum 이겠죠? enum Package { curated, drafted, single } 와 같은 형태로 선언됐을거라고 생각합니다. 다시 keyof typeof Package를 보시면 "Package의 타입의 키"를 뜻한다는 것을 알 수 있게 됩니다. 한가지 더 첨언하자면, enum이라고 추측한 이유는 타입스크립트 enum에 keyof를 사용하면 그냥 객체 형태에 사용하는 것처럼 동작하지 않는다고 공식 문서에 나와있습니다. enum의 키 값을 읽어오는 예시로 keyof typeof를 쓰고 있는 것을 알 수 있습니다. (https://www.typescriptlang.org/docs/handbook/enums.html#enums-at-compile-time)

profile picture

익명

작성자

2022년 10월 17일

자세한 설명 감사드립니다!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!