[TS] 제네릭 함수 타입 정의 및 응용 연습

TIL

1. 조건을 만족하는 함수 func의 타입 정의

func 함수
- 매개변수를 그대로 반환
- 매개변수 value에는 모든 타입의 값이 들어올 수 있음
- 반환값의 타입은 매개변수로 전달된 값의 타입과 같음
function func(value: any) {
  return value;
}
function func<T>(value: T):T {
  return value;
}

 

2. 조건을 만족하는 함수 getLastValue의 타입 정의

getLastValue 함수
- 매개변수로 배열을 받아 배열의 마지막 값을 반환
- 매개변수 dat에는 빈 배열을 제외한 모든 배열이 들어올 수 있음
- 반환값의 타입은 매개변수 data 배열의 마지막 요소의 타입이어야 함
function getLastValue(data: any) {
  return data[data.length - 1];
}​
function getLastValue<T>(data: [...any, T]):T {
  return data[data.length - 1];
}

 

3. 조건을 만족하는 함수 map의 타입 구현

map 함수
- 자바스크립트 배열 메서드 map을 본따 만든 함수
- 2개의 매개변수 arr와 callback을 받음
- arr 배열의 모든 요소에 callback 함수를 수행한 결과를 배열로 모아 반환
function map(arr, callback) {
  let result = [];
  for (let i = 0; i < arr.length; i++) {
    result.push(callback(arr[i]));
  }
  return result;
}​
function map<T, U>(arr: T[], callback: (item: T) => U): U[] {
  let result = [];
  for (let i = 0; i < arr.length; i++) {
    result.push(callback(arr[i]));
  }
  return result;
}

 

'TIL' 카테고리의 다른 글

[CS50] 컴퓨팅 사고 - 알고리즘  (0) 2025.11.05
[CS50] 컴퓨팅 사고 - 정보의 표현  (0) 2025.11.04
[TS] 프로미스와 제네릭  (0) 2025.11.04
[TS] 제네릭 클래스  (0) 2025.11.04
[TS] 제네릭 인터페이스와 타입 별칭  (0) 2025.11.04
'TIL' 카테고리의 다른 글
  • [CS50] 컴퓨팅 사고 - 알고리즘
  • [CS50] 컴퓨팅 사고 - 정보의 표현
  • [TS] 프로미스와 제네릭
  • [TS] 제네릭 클래스
고견
고견
개발 자국 남기기
  • 고견
    개발자국
    고견
  • 전체
    오늘
    어제
    • 분류 전체보기 (157) N
      • Frontend (29)
        • Next.js (16)
        • JavaScript (7)
      • CS (19) N
        • 자료구조 (9)
        • 알고리즘 (5)
        • 운영체제 (4) N
        • 네트워크 (1) N
      • TIL (93)
      • Dev Log (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    App Router
    algorithm
    함수 타입
    react
    Pages Router
    cs50
    인터페이스
    javascript
    페이지 라우터
    문자열
    알고리즘
    Spa
    자료구조
    emotion diary
    바닐라 자바스크립트
    Trouble Shooting
    트러블 슈팅
    Next.js
    useState
    앱 라우터
    클래스
    제네릭
    ai 감성 일기장
    typescript
    CS
    배열
    generic
    C
    memory
    타입 좁히기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
고견
[TS] 제네릭 함수 타입 정의 및 응용 연습
상단으로

티스토리툴바