keyof, typeof

choi seung-i·2023년 3월 23일
0

TS로그

목록 보기
6/7
post-thumbnail

keyof, typeof

타입 안에서 값의 타입과 관련된 정보를 추출하는데 사용되는 연산자

keyof

  • 객체나 인터페이스의 키(key)들을 문자열 유니온타입으로 반환
  • 유효성 검사, 매핑 등 다양한 용도로 사용
interface Person {
  name: string;
  age: number;
}

type UserKeys = keyof User; // 'name' | 'age'

typeof

  • 변수,속성,함수와 같은 값의 타입을 추출
  • 변수의 타입 또는 함수의 반환 타입을 가져옴
  • 컴파일 타임에 코드 유형을 이해하고 정적 타입 검사를 수행할 수 있음
const person = {
  name: "John",
  age: 30,
};

type PersonType = typeof person; // { name: string, age: number }

객체에서 키만 추출할 때에는 이렇게 사용할 수 있다

person이 타입객체가 아니기 때문에 에러나기때문에
type Key = keyof typeof person;라고 해줘야 함

사용 예시

  • 객체의 키를 가져와 해당 키에대한 유효한 값을 가져올 수 있음

    interface Person {
      name: string;
      age: number;
      address: string;
    }
    
    type PersonProps = {
      [key in keyof Person]: {
        value: Person[key];
        updatedBy: string;
      }
    }
    
    const person: PersonProps = {
      name: { value: "John", updatedBy: "Admin" },
      age: { value: 30, updatedBy: "User" },
      address: { value: "123 Main St", updatedBy: "Admin" }
    };
  1. keyof Person = Person의 키값들 ("name" | "age" | "address")
  2. PersonProps객체의 key는 다음과 같은 형태
    // name = Person의 키
    type PersonProps = {
        name: {
            value: Person[name];
            updateBy: string;
        }
    }

공부하며 정리&기록하는 ._. 씅로그

profile
Front-end

0개의 댓글