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을 제외한 타입만 생성된다.