
keyof를 이용해서 interface 타입을 유니온으로 받아올 수 있다.
<T>property를 모두 option으로 바꿈

타입 부분을 Partial<타입>으로 감싸줘서 사용한다.
이 모습은

다음과 같다.
<T>모두 필수 property로 바꿔준다.

optional한 property도 필수값으로 바꿔주어 전부 입력해야 에러가 나지 않는다.
<t>처음에 할당만 가능하고 뒤에 수정을 막는다.

K는 key이고 T는 타입이다.

이렇게 작성하고 이 복잡한 타입을 따로 빼서 작성할 수 있다.

다른 예시

타입에서 몇가지만 가져와서 사용할 수 있다.

Pick과 반대로 제외하고 사용할 수 있다.

타입1에서 타입2와 겹치는 타입을 제외함

T2는 T1에서 number, string 타입을 제외한 타입만 남게 된다.

<Type>null, undefined를 제외한 타입을 생성

T2는 T1의 타입에서 undefined와 null을 제외한 타입만 생성된다.
