문법 · TS · beginner

배열·제네릭 함수 스케치

T[]와 간단한 제네릭으로 재사용 가능한 헬퍼를 만듭니다.

배우기 · TypeScript 문법 · 13분 · 4/7 · typescript · 배열

이 트랙 목차 (7)
  1. 1. 타입 주석·유니온·좁히기
  2. 2. interface · type · 제네릭 맛보기
  3. 3. 좁히기·가드: typeof, in, 판별 유니온
  4. 4. 배열·제네릭 함수 스케치
  5. 5. optional과 nullish: ?. ?? !
  6. 6. Promise와 async 함수 타입
  7. 7. 튜플·readonly 감각

배열 타입

const xs: number[] = [1, 2, 3];
const ys: Array<string> = ['a', 'b'];

읽기 전용이면 readonly number[]를 쓸 수 있습니다. 테스트 코드에서는 보통 가변 배열로 충분합니다.

간단한 제네릭

function first<T>(arr: T[]): T | undefined {
  return arr[0];
}

T는 “나중에 정해질 타입”입니다. 호출 시점에 추론되거나 명시합니다.

map / filter 타입

const nums = [1, 2, 3];
const doubled: number[] = nums.map((n) => n * 2);
const evens = nums.filter((n): n is number => n % 2 === 0);

filter에 타입 프레디케이트를 붙이면 결과 타입이 더 정확해집니다.

객체 배열

type Row = { id: number; name: string };
function byId(rows: Row[], id: number): Row | undefined {
  return rows.find((r) => r.id === id);
}

문제에서 JSON-like 구조를 다루면 type/interface로 행 모양을 먼저 적어두세요.

함정

연습

ts-filter-even류 문제처럼 숫자 배열을 파싱해 짝수만 남기는 함수에 타입을 붙여 보세요.

튜플

const pair: [number, string] = [1, 'a'];

길이가 고정된 배열에 유용합니다. 나머지 파라미터와 구분하세요.

연습 체크

  1. number[] 파싱 → 짝수 필터 → 문자열로 join
  2. 제네릭 last<T> 작성
  3. Row 타입으로 find 헬퍼

한 줄: 배열 원소 타입을 먼저 적고, 그다음 알고리즘.

관련 짧은 원리

관련 문제