일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- reactnative
- 유니온타입
- 크라코
- 배열
- 파스에러
- 리액트
- react-native
- Flipper
- 모던자바스크립트
- react-hook-form
- Android
- sort( )
- 제네릭타입
- js
- 타입스크립트
- slice
- craco
- 코드숨
- ios
- javascript
- react-native-image-picker
- 리액트쿼리
- React
- 리액트네이티브
- 자바스크립트
- Typescript
- 프로그래머스
- react-native-vision-camera
- 자료구조와알고리즘
- react-native-camera-roll
- Today
- Total
KassyLog
제네릭타입이란 본문
Documentation - Generics
Types which take parameters
www.typescriptlang.org
제네릭타입이란이란 데이터의 타입을 일반화한다(generalize)한다는 것을 뜻한다. Generic은 자료형을 정하지 않고 여러 타입을 사용할 수 있게 해준다.
즉, 선언 시점이 아니라 생성 시점에 타입을 명시하여 하나의 타입만이 아닌 다양한 타입을 사용할 수 있도록 하는 기법이다. 한번의 선언으로 다양한 타입에 '재사용'이 가능하다는 장점이 있다.
제네릭 타입은 함수, 클래스, 인터페이스 등에서 사용할 수 있다. 제네릭 타입을 사용하면 함수나 클래스를 호출할 때, 인자로 전달된 값의 타입에 따라 타입 추론을 통해 타입이 결정된다.
제네릭 타입은 다음과 같은 형태로 작성된다.
function 함수명<T>(매개변수: T): T {
// 함수 내부 로직
}
class 클래스명<T> {
// 클래스 내부 로직
}
interface 인터페이스명<T> {
// 인터페이스 내부 로직
}
여기서 T는 타입 매개변수로, 함수나 클래스에서 사용할 타입의 이름을 정의한다. T 대신에 다른 이름을 사용할 수도 있다. 타입 매개변수를 사용하면, 함수나 클래스가 다양한 타입에서 동작할 수 있도록 만들 수 있다.
예를 들어, 다음과 같이 T 타입 매개변수를 사용하여 배열의 요소를 뒤집는 함수를 작성할 수 있다.
function reverse<T>(array: T[]): T[] {
return array.reverse();
}
const numberArray = [1, 2, 3, 4, 5];
const reversedNumberArray = reverse<number>(numberArray); // [5, 4, 3, 2, 1]
const stringArray = ['a', 'b', 'c'];
const reversedStringArray = reverse<string>(stringArray); // ['c', 'b', 'a']
위 예제에서 reverse 함수의 타입 매개변수 T는 배열의 요소 타입을 나타낸다. 함수를 호출할 때, <number>와 <string>을 사용하여 각각 숫자 배열과 문자열 배열에 대해 타입을 지정한다. 함수 내부에서는 T[] 타입으로 배열을 받고, array.reverse()를 사용하여 배열을 뒤집은 후 T[] 타입으로 반환합니다.
*참고자료
TypeScript | Generic 제네릭 (feat. TypeScript 두 달차 후기)
타입스크립트 제네릭의 여러 사용 방법에 대해 정리해봅니다.
velog.io
'typescript' 카테고리의 다른 글
유니온타입이란? (0) | 2023.03.20 |
---|---|
타입스크립트의 타입에 대해서 (0) | 2023.02.07 |