TS Generic

sang hyeok Lee·2022년 4월 6일
0

TS Generic

제너릭 타입은 타입에 유연성을 제공하여 컴포넌트 등에서 재사용을 가능하게 해주는 타입이다. 타입에 유연성을 제공한다는 말은 우리가 변수명 뒤에 :sring, :number 같이 고정된 타입을 사용하게 해주는 것이 아니라 사황에 따라 여러 타입을 사용할 수 있게 해주는 것이다. any와 흡사하지만 차이점이 있다.

any와 의 차이점은 generic타입은 타입의 정보가 동적으로 결정된다는 차이가 있다.

function aaa (bbb: any):any {
	return bbb
}

const ccc = aaa(1)

const ddd = ccc.split('')

함수 aaa는 any 타입을 리턴하고 any타입의 bbb를 매개변수로 받는다. 그래서 ccc에서 인자로 1을 받아서 함수 aaa가 1을 리턴하고 이를 ccc에 담아준다. 그러면 ccc의 타입은 any이다. 그리고 문자열에만 사용 가능한 split를 사용하면 오류가 발생은 하지만 사용이 가능하다. 이유는 타입이 any이기 때문이다.

function aaa<T>(bbb: T):T {
	return bbb
}

const ccc = aaa(1)

const ddd = ccc.split('')
//오류

any를 대신해서 generic 타입을 사용하면 any와 마찬가지로 다양한 타입들을 받을 수 있다. 그리고 타입이 들어오면 유연성의 의해서 그 타입으로 설정이 되면서 number타입이 들어온 ccc는 문자열 메소드 split를 사용할 수 없가.

generic 타입의 사용방법이다.

function 함수이름<제너릭이름>(인수: 제너릭 이름): 제너릭이름 {}

profile
개발자 되기

0개의 댓글