반응형
📝Exclude<UnionType, ExcludedMembers>
type T0 = Exclude<"a" | "b" | "c", "a">;
// type T0 = "b" | "c"
type T1 = Exclude<"a" | "b" | "c", "a" | "b">;
// type T1 = "c"
type T2 = Exclude<string | number | (() => void), Function>;
// type T2 = string | number
UnionType에 할당된 것에 제외할 멤버를 제외하고 Type 형식을 구성합니다
📝Extract<Type, Union>
type T0 = Extract<"a" | "b" | "c", "a" | "f">;
// type T0 = "a"
type T1 = Extract<string | number | (() => void), Function>;
// type T1 = () => void
Type과 Union의 교집합에 해당하는 부분으로 Type형식을 구성합니다
📝NonNullable<Type>
type T0 = NonNullable<string | number | undefined>;
// type T0 = string | number
type T1 = NonNullable<string[] | null | undefined>;
// type T1 = string[]
null및 undefined를 제외하여 유형을 구성합니다
📝Parameters<Type>
function greet(name: string, age: number): string {
return `Hello, ${name}. You are ${age} years old.`;
}
type GreetParameters = Parameters<typeof greet>;
// GreetParameters 타입은 [string, number]와 동일합니다.
const user: GreetParameters = ["John Doe", 30];
유틸리티 타입은 함수의 매개변수 타입들을 튜플 타입으로 추출합니다
📝ConstructorParameters
class User {
constructor(public name: string, public age: number) {}
}
// User 생성자의 매개변수 타입을 추출합니다.
type UserConstructorParameters = ConstructorParameters<typeof User>;
// UserConstructorParameters는 [string, number] 타입과 동일합니다.
const userParams: UserConstructorParameters = ["Jane Doe", 32];
클래스 생성자의 매개변수 타입들을 튜플로 추출합니다
📝ReturnType<Type>
function getUser() {
return { name: "John Doe", age: 30 };
}
// getUser 함수의 반환 타입을 추출합니다.
type User = ReturnType<typeof getUser>;
// User 타입은 { name: string; age: number; }와 동일합니다.
const user: User = { name: "Jane Doe", age: 32 };
함수의 반환 타입을 추출하는 유틸리티 타입입니다
반응형