키of type에서 대상에서만 키를 추출하여 형식을 생성합니다

이 문장의 종점


이런 상대가 있어요.
const sampleObject = {
  a: 111,
  b: 222,
  c: 333,
  d: 444,
  e: 555,
}
목표는 여기서 열쇠만 추출하여 유형을 생성하는 것이다(글 제목 유지).
type SampleType = "a" | "b" | "c" | "d" | "e";

서법


결론부터.
이렇게 쓰면 sampleObject 에서 열쇠만 꺼내서 SampleType 의 유형을 정의할 수 있습니다.
type SampleType = keyof typeof sampleObject;

좀 더 자세히


두 단계로 나누어 이해하다.간단하지만

typeof 시 유형

keyof typeof 보이는 대로 typeof하고 다시 keyof합니다.
그럼 typeof 했을 때 형식이 어떻게 되는지 한번 봅시다.
const sampleObject = {
  a: 111,
  b: 222,
  c: 333,
  d: 444,
  e: 555,
}

type SampleType = typeof sampleObject;
typeof를 할 때의 유형은 다음과 같다.
키랑 값이 다 붙어있네.
type SampleType = {
    a: number;
    b: number;
    c: number;
    d: number;
    e: number;
}

그다음에 키오브 타입.


이번에는 수치가 필요 없으니 열쇠만 뽑아.
여기서 사용해야 한다keyof.
const sampleObject = {
  a: 111,
  b: 222,
  c: 333,
  d: 444,
  e: 555,
}

type SampleType = keyof typeof sampleObject;
type SampleType = "a" | "b" | "c" | "d" | "e"
이렇게 하면 대상에서 키만 추출하는 유형을 정의할 수 있다.

좋은 웹페이지 즐겨찾기