#Day26TypeScript

D0-$ANG ₩0N·2025년 12월 8일
post-thumbnail

1.TypeScript 핵심 개념 정리

1-2.타입 주석과 타입 추론

TypeScript는 변수에 타입을 명시적으로 붙일 수 있음

하지만 대부분의 경우 타입 추론이 동작 → 값을 보고 타입을 자동 결정

문자열/숫자/불린처럼 단순 값은 추론이 잘 되지만
파싱된 JSON이나 복잡한 객체는 any 타입이 될 수 있음

이 경우 개발자가 직접 타입을 지정해야 오류를 줄일 수 있음

1-3.함수 타입과 반환 타입 정의

함수 선언 시 매개변수 타입, 반환 타입을 모두 명시할 수 있음

function add(a: number, b: number): number {
  return a + b;
}

반환값이 없는 함수는 void 또는 특정 경우 never를 사용

never는 반환되지 않는 함수에 사용 (EX: 예외함수, 무한루프)

1.4타입 추론이 실패하는 경우 any

TypeScript가 타입을 정확히 알 수 없는 상황에서는 자동으로 any로 떨어짐

any는 타입 체킹이 불가능해져 타입스크립트를 쓰는 의미가 감소

가능하면 unknown을 써서 안전하게 처리하거나, 직접 타입을 정의해야 함

2.배열과 타입

2-2.기본 배열: number[], string[]

TypeScript 배열은 “초기 넣은 값의 타입” 기준으로 결정되는 경우가 많음
처음 숫자를 넣으면 그 배열은 숫자 배열로 고정됨

readonly 배열은 수정 불가

2-3.튜플 (Tuple)

여러 타입을 고정된 순서로 가지는 배열

let data: [string, number] = ["age", 30]

3.객체 타입과 옵션 속성

객체 타입 정의:

type Car = {
  model: string
  year: number
  mileage?: number 
}

?가 붙은 속성은 있어도 되고 없어도 되는 값

3-2.유니온 타입 / 인터섹션 타입

유니온: "A 또는 B"

let value: number | string

인터섹션: 두 타입을 모두 만족

type Person = NameInfo & AgeInfo

3-3.enum (열거형)

특정 이름 있는 상수들을 나열하는 방식

enum Direction {
  North = 0,
  East = 1,
  South = 2,
  West = 3
}

3-4.타입 별칭 vs 인터페이스

인터페이스: 객체 구조 정의에 강함

타입: 유니온, 인터섹션 등 복합적인 타입 만들기 유리

강의 기준:

객체 형태는 인터페이스

복합 타입은 type alias

4.제네릭 (Generic)

여러 타입을 동일한 로직에서 재사용하기 위한 문법

EX)

class Box<T> {
  value: T;

  constructor(v: T) { this.value = v; }
  getValue(): T { return this.value; }
}

new Box(10) → 숫자

new Box("hello") → 문자열

같은 구조지만 타입만 다르게 재사용 가능

profile
Change Up

0개의 댓글