이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
TypeScript의 조건부 유형: 조건부 논리로 유형을 만드는 방법
TypeScript는 JavaScript 개발을 보다 생산적이고 효율적으로 만드는 것을 목표로 하는 널리 사용되는 프로그래밍 언어입니다. TypeScript를 강력하게 만드는 많은 기능 중 하나는 개발자가 조건부 논리를 기반으로 유형을 만들 수 있는 조건부 유형 지원입니다. 이 게시물에서는 TypeScript에서 조건부 유형을 사용하여 보다 유연하고 재사용 가능한 코드를 만드는 방법을 살펴보겠습니다.
조건부 유형은 조건에 따라 유형을 정의할 수 있는 TypeScript의 강력한 기능입니다. 이는 다른 유형의 값에 따라 변경되는 유형을 작성할 수 있음을 의미합니다. 조건부 유형을 사용하면 다양한 상황에 적응하는 보다 유연하고 재사용 가능한 코드를 만들 수 있습니다.
TypeScript에서 조건부 유형의 기본 구문은 다음과 같습니다.
type TypeName<T> =
T extends string ? "string" :
T extends number ? "number" :
T extends boolean ? "boolean" :
T extends undefined ? "undefined" :
"object";
이 예제에서는 일반 유형 매개변수 T
를 사용하는 TypeName
이라는 유형을 정의합니다. 그런 다음 extends
키워드를 사용하여 T
가 특정 유형을 확장하는지 확인하는 일련의 조건문을 만듭니다. T
가 문자열, 숫자, 부울 또는 정의되지 않은 것을 확장하는 경우 해당 유형에 해당하는 문자열 리터럴 유형을 반환합니다. 그렇지 않으면 문자열 리터럴 유형 "객체"를 반환합니다.
조건부 유형은 다른 유형에 의존하는 유형을 만들어야 할 때 가장 유용합니다. 예를 들어 특정 모양의 개체를 사용하는 함수가 있지만 선택적 속성을 허용하려고 할 수 있습니다. 조건부 유형을 사용하여 선택적 속성을 포함하는 새 유형을 만들 수 있습니다.
interface Person {
name: string;
age: number;
address?: string;
}
type OptionalPerson = {
[K in keyof Person]?: Person[K];
}
이 예제에서는 name
, age
및 address
의 세 가지 속성을 사용하여 Person
이라는 인터페이스를 정의합니다. 그런 다음 Person
의 모든 속성을 포함하지만 address
속성이 선택 사항인 새 유형을 만들기 위해 조건부 유형을 사용하는 OptionalPerson
이라는 유형을 정의합니다.
조건부 유형은 더 복잡한 시나리오에서도 사용할 수 있습니다. 예를 들어 다른 유형의 특정 속성만 포함하는 유형을 만들 수 있습니다.
type Pick<T, K extends keyof T> = {
[P in K]: T[P];
}
interface Person {
name: string;
age: number;
address: string;
}
type NameAndAge = Pick<Person, "name" | "age">;
이 예에서는 T
와 K
라는 두 가지 유형 매개변수를 사용하는 Pick
유형을 정의합니다. T
매개변수는 속성을 선택하려는 유형이고 K
매개변수는 새 유형에 포함하려는 T
의 키 조합입니다. 조건부 유형을 사용하여 선택한 속성만으로 새 유형을 만듭니다.
조건부 유형은 보다 유연하고 재사용 가능한 코드를 생성할 수 있는 TypeScript의 강력한 기능입니다. 조건에 따라 유형을 정의하면 다양한 상황에 적응하고 코드를 더욱 강력하게 만드는 유형을 만들 수 있습니다. 이 게시물에서 다룬 예제를 통해 자신의 TypeScript 프로젝트에서 조건부 유형을 사용하기 시작할 수 있습니다.