[typescript] 다중 타입을 사용하여 객체의 속성을 동적으로 접근하는 방법을 알려주세요.

다중 타입을 사용하여 객체의 속성을 동적으로 접근하는 방법은 다음과 같습니다.

먼저, keyof 키워드를 사용하여 객체의 특정 속성에 대한 유니온 타입을 만듭니다. 그런 다음, 해당 유니온 타입을 사용하여 인덱스 시그니처를 정의합니다.

아래는 예제입니다.

// 다중 타입을 사용하여 객체의 속성을 동적으로 접근하는 예제

interface MyObject {
  name: string;
  age: number;
  gender: 'male' | 'female';
}

type MyObjectKeys = keyof MyObject; // 'name' | 'age' | 'gender'

function getValue(obj: MyObject, key: MyObjectKeys) {
  return obj[key];
}

const person: MyObject = {
  name: 'John',
  age: 30,
  gender: 'male',
};

console.log(getValue(person, 'name'));   // 'John'
console.log(getValue(person, 'age'));    // 30
console.log(getValue(person, 'gender')); // 'male'

위 예제에서는 MyObject 인터페이스를 정의하고, keyof MyObject를 사용하여 MyObject의 모든 키를 유니온 타입으로 만든 후, 이를 사용하여 getValue 함수를 작성했습니다. 그 결과, getValue 함수는 객체와 속성 키를 전달받아 해당 속성의 값을 반환할 수 있게 됩니다.

이러한 방법을 사용하면 TypeScript에서 객체의 속성을 동적으로 접근할 수 있으며, 코드의 안정성을 유지하면서도 유연성을 확보할 수 있습니다.

참고 문헌: