헬퍼 함수
같은 것이다알아두면 좋다는 핵심 유틸리티 타입
에 대한 설명/예시를 정리해두는 것이다Partial<T>
Partial<T>
는 <T>
의 모든 프로퍼티를 옵셔널(Optional) 프로퍼티로 변환한다.
Partial<User>
를 통해 User
인터페이스 안의 모든 프로퍼티를 옵셔널로 변환할 수 있다address
프로퍼티에 있는 객체 내부 프로퍼티는 변경되지 않는다. <T>
로 입력받은 User
의 직속 프로퍼티만 옵셔널로 변환된다Required<T>
반대로 Required<T>
는 모든 <T>
의 모든 프로퍼티를 Required로 변환한다.
Required<ReqTest>
를 통해 ReqTest
내 프로퍼티(a, b, c)에서 옵셔널을 제거하고 모두 Required로 변환한다Partial<T>
와 마찬가지로 프로퍼티의 내부 객체에는 접근하지 않고, 입력받은 인터페이스의 직속 프로퍼티에만 접근한다Readonly<T>
Readonly<T>
는 <T>
의 모든 프로퍼티를 readonly 상태로 변환한다.
Readyonly<SomeType>
을 통해 모든 프로퍼티가 readonly 상태인 SomeType이 반환된다 value.a
의 값을 수정하려고 하면, a가 readonly 상태이므로 에러가 발생하게 된다 Record<Keys, Type>
Record<Keys, Type>
은 Key를 속성으로, Type를 속성 값의 타입으로 지정하는 새로운 타입을 반환한다 { KEY : TYPE, ... } 형태로 반환
. 주로 타입의 프로퍼티들을 다른 타입에 매핑시키는 데 사용한다.
a, b, c
프로퍼티를 생성하고, 각 프로퍼티 값의 타입을 <Type>
으로 받은 number로 지정한다Pick<Type, Keys>
Pick<Type, Key>
는 Type으로 부터 Keys에 해당하는 속성을 선택해서 새로운 타입을 반환한다.
Omit<Type, Keys>
Pick
과 반대로 Type으로 부터 Keys에 해당하는 속성을 제외한 나머지를 모아서 새로운 타입을 반환한다.
NonNullable<Type>
Type에서 undefined
와 null
을 제외한 새로운 타입을 반환한다.
Parameters<T>
함수를 제네릭 타입으로 받은 후 함수의 매개변수의 타입을 새로운 튜플 타입으로 반환한다.
length: 1 / type: string
ReturnType<T>
함수를 제네릭 타입으로 받은 후 함수의 Return 값의 타입을 반환한다.
RetType3
처럼 아직 Return 값의 타입이 미정인 상태인 경우 unknown
으로 반환된다