[typescript] 타입스크립트에서의 선택된 필드 타입 변환 방식

타입스크립트(TypeScript)는 정적 타입을 지원하는 프로그래밍 언어로, 자바스크립트의 확장된 기능을 제공합니다. 타입스크립트에서 선택적으로 필드를 변환하고자 할 때, 다양한 방법을 활용할 수 있습니다. 이번 블로그에서는 이에 대해 살펴보겠습니다.

1. Conditional Types(조건부 타입)

Conditional Types를 사용하면 조건에 따라 타입을 변환할 수 있습니다. 예를 들어, 특정 조건을 충족할 때만 특정 필드를 가진 타입을 반환하고 싶을 때 사용할 수 있습니다.

type CheckField<T> = T extends { field: any } ? T : never;
type CheckedType = CheckField<{ field: string, other: number }>; // { field: string, other: number }
type UncheckedType = CheckedField<{ other: number }>; // never

2. Type Assertions(타입 어썰션)

타입 어썰션을 사용하면 특정 값이 원하는 타입으로 변환된 것으로 TypeScript 컴파일러에게 알릴 수 있습니다. 따라서 선택된 필드를 갖는 새로운 타입으로 변환할 수 있습니다.

interface OriginalType {
  field1: string;
  field2?: number;
}

const obj: OriginalType = { field1: 'value' };
const newObj = obj as { field1: string }; // newObj의 타입은 { field1: string }으로 변환됨

3. Mapping Types(매핑 타입)

매핑 타입을 활용하여 기존 타입에서 선택된 필드를 갖는 새로운 타입을 만들 수 있습니다.

type OriginalType = {
  field1: string;
  field2: number;
  field3: boolean;
};

type SelectedFields = {
  [K in "field1" | "field3"]: OriginalType[K];
};
// SelectedFields의 타입은 { field1: string, field3: boolean }

결론

타입스크립트에서 선택된 필드 타입을 변환하는 방법으로 Conditional Types, Type Assertions, Mapping Types 등을 활용할 수 있습니다. 각각의 방법은 다양한 상황에 맞게 사용될 수 있으며, 프로젝트 요구에 맞게 적절한 방법을 선택하여 활용할 수 있습니다.

참고문헌: