속성의 키와 값의 타입이 궁금할 수도 있습니다.

    const obj = {
      hello: 'world',
      name: 'zero',
      age: 28,
    }
    

    이러한 객체가 있다면 키의 타입은 'hello' | 'name' | 'age'이고, 값의 타입은 string | number입니다. 값의 타입이 'world' | 'zero' | 28이 아닌 이유는 obj 객체가 변경 가능하기 때문입니다. 만약 뒤에 as const가 붙었다면 'world' | 'zero' | 28이었겠죠.

    이때는 keyof 연산자와 인덱스 접근 타입을 활용해 키의 타입과 값의 타입을 구할 수 있습니다. 키의 타입은 'keyof 객체_타입'이고, 값의 타입은 '객체_타입[키의_타입]'입니다.

    const obj = {
      hello: 'world',
      name: 'zero',
      age: 28,
    };
    type Keys = keyof typeof obj; 
    // type Keys = 'hello' | 'name' | 'age'
    type Values = typeof obj[Keys]; 
    // type Values = string | number
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.