반응형

📝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 };

함수의 반환 타입을 추출하는 유틸리티 타입입니다

반응형