타입스크립트 제너릭 활용

프로젝트를 진행하다가 아래와 같은 함수를 만들었는데,

T를 K의 타입으로 지정하고 싶었다.

private updateValue = <K extends keyof SearchParam, T> (key : K, value : T) : void => {
//...
}

주로 자바로 코딩을 하는데 제너릭을 저렇게 복잡하게 짜본적도 없고, 지원이 되는지도 모르겠지만 타입스크립트에서는 가능하다.

private updateValue = <K extends keyof SearchParam, T extends SearchParam[K]> (key : K, value : T) : void => {
//...
}

위 코드처럼 수정하면 T가 K의 타입으로 정할 수 있다.