Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 리터럴타입
- useCallback
- 프론트앤드 개발자
- CSS
- 프론트앤드개발
- html
- 프론트앤드 기초
- frontend
- 리액트
- 프론트앤드 사이드프로젝트
- 타입스크립트 기초
- 타입스크립트
- javascript
- javascript 수학
- 자바스크립트
- 프론트앤드
- react
- typescript
- next.js
- 인터섹션타입
- prompth
- 유니온타입
- useMemo
- 개발일기
- 채팅개발
- react기초
- 프론트앤드개발자
- Union Type
- 리액트기초
- intersection type
Archives
- Today
- Total
404 page not found : 기록장
[Typescript] Generic 본문
Generic은 타입을 불문하고 동작하는 것을 말한다. 즉, 함수에 인수를 넘길 때 타입 인수도 넘기기 때문에 타입에 관한 어떠한 정보도 잃지 않는다. any를 쓰는 것과는 다르다. any를 쓰게 되면 만약 number type을 넘기더라도 any type이 반환된다는 정보만 얻을 뿐이다.
하지만 generic을 사용하게 되면 number type을 넘기면 number type이 string type을 넘기면 string type 을 반환해준다.
// 4. 모두(generic)
function getGeneric<MyType>(arg: MyType): MyType {
return arg
}
const result41 = getGeneric(8);
const result42 = getGeneric("안녕하세요");
const result43 = getGeneric(true);
//
//
//
// 5. 모두(any) - 응용
// "철수", "다람쥐초등학교", 8
// [8, "다람쥐초등학교", "철수"]
function getReverse(arg1 : any, arg2 : any, arg3 : any) : any[]{
return [arg3, arg2, arg1]
}
const result51 = getReverse("철수", "다람쥐초등학교", 8)
const result52 = getReverse(1000, "영희", "토끼초등학교")
const result53 = getReverse(100, 200, "토끼초등학교")
//
//
//
// 6. 모두 (generic) - 응용
//prettier-ignore
function getReverseType<MyType1, MyType2, MyType3>(arg1: MyType1, arg2: MyType2, arg3: MyType3): [MyType3, MyType2, MyType1]{
return [arg3, arg2, arg1]
}
const result61 = getReverseType("철수", "다람쥐초등학교", 8)
const result62 = getReverseType(13 , "영희", "토끼초등학교")
const result63 = getReverseType(100 , 200, "토끼초등학교")
//
//
//
// 7. 모두 (generic) - 축약
//prettier-ignore
function getReverseT<T1, T2, T3>(arg1: T1, arg2: T2, arg3: T3): [T3, T2, T1]{
return [arg3, arg2, arg1]
}
const result71 = getReverseT("철수", "다람쥐초등학교", 8)
const result72 = getReverseT(13 , "영희", "토끼초등학교")
const result73 = getReverseT(100 , 200, "토끼초등학교")
//
//
//
// 8. 모두 (generic) - 축약
//prettier-ignore
function getReverseTUV<T, U, V>(arg1: T, arg2: U, arg3: V): [V, U, T]{
return [arg3, arg2, arg1]
}
const result81 = getReverseTUV("철수", "다람쥐초등학교", 8)
const result82 = getReverseTUV(13 , "영희", "토끼초등학교")
const result83 = getReverseTUV(100 , 200, "토끼초등학교")
'TYPESCRIPT' 카테고리의 다른 글
[Typescript] Typescript 함수 (0) | 2023.03.08 |
---|---|
[Typescript] Any와 Unknown (0) | 2023.03.03 |
[Typescript] Union Type, Intersection Type (0) | 2023.03.03 |
[Typescript] type vs interface 차이 (0) | 2023.03.03 |
[Typescript] Typescript의 기본 Type (0) | 2023.03.03 |