generic - 2 배열

YOUNGJOO-YOON·2021년 6월 21일
0

typeScript

목록 보기
6/65

TOC

  1. generic과 배열

배열을 따로 다루는 이유는 tsc에서 배열은 obj밑의 개념이다
(obj 밑은 tuple이 자리를 차지한다.)

아무튼 generic type을 사용하며 배열을 받기 위해서는
아래와 같이 코드를 짜야한다.

let output=identity3=<T>(arg:T[]):void=>{
	return arg.length
}

만약 아래와 같이 코드를 짜게 된다면 오류를 보게 된다.

function loggingIdentity<T>(arg:T):void{
	console.log(arg.length)
}

이유는 단순하다. generic은 입력값의 타입을 스냅샷에 담아
입력값이 들어오고 나서야 해당 타입을 확인할 수 있다.

그런데 무슨 값이 들어올지 모르는 자리에 length method를 사용하는 것은
말이 안된다.

따라서 위 코드는 에러를 내뿜는 것이 당연하다.

또 다른 사용가능한 방법은 아래와 같다.

const loggingTest=<T>(arg:Array<T>):number=>{
	console.log(arg.length);
	return arg.length;
};

let loggingTestOutput=loggingTest([1,2,3]);
console.log('loggingTestOutput: ',loggingTestOutput);
// expected 3
profile
이 블로그의 글은 제 생각을 정리한 글과 인터넷 어딘가에서 배운 것을 정리한 글입니다. 출처는 되도록 남기도록 하겠습니다. 수정 및 건의 오류 등이 있으면 언제든지 댓글 부탁드립니다.

0개의 댓글