generic + extends

YOUNGJOO-YOON·2021년 7월 6일
0

typeScript

목록 보기
20/65

강력한 generic 타입을 통해 입력되는 값의 타입을 추측하는 것은
좋은 일이다.

하지만 모든 타입을 고려해 함수를 작성하는 일은 잘 없기 때문에 extends를 사용해 narrowing을 해주도록 하자

<T extends {length:number}> 이 코드의 뜻은
T를 사용해 generic 타입을 사용할 것인데 T의 method인 length가 number타입을 가질 수 있는지를 판별해 input값을 가려받는다.


function longest<T extends {length:number}>(a:T,b:T){
	if(a.length>=b.length){
		return a;
	}else{
		return b;
	}
}

const longerArray = longest([1,2],[3,4,5]);
const longerString = longest('abc','abcde');
const longerNumber= longest(1,23); // error!
profile
이 블로그의 글은 제 생각을 정리한 글과 인터넷 어딘가에서 배운 것을 정리한 글입니다. 출처는 되도록 남기도록 하겠습니다. 수정 및 건의 오류 등이 있으면 언제든지 댓글 부탁드립니다.

0개의 댓글