[TypeScript] 객체

ttining·2025년 3월 12일

object 타입의 한계

  • object 타입은 "이 값은 객체임"라는 정보만 제공할 뿐,
    객체의 프로퍼티나 메서드에 대한 정보가 없다.
let user: object = {
  id: 1,
  name: "ttining",
};

user.id; // 🚫 오류 발생: `object` 타입에 `id` 속성이 없습니다.
  • object 타입으로 선언하면 user.id처럼 특정 프로퍼티에 접근할 수 없다.
  • 따라서, 객체의 구조를 명확하게 정의하는 것이 중요하다.


객체 리터럴을 사용한 타입 정의

  • {} 중괄호를 사용해 객체의 프로퍼티 타입을 명확하게 정의할 수 있다.
let user: { id: number; name: string } = {
  id: 1,
  name: 'ttining',
};

user.id; // ✅ 정상 작동


객체 타입을 정의하는 다양한 방법

1️⃣ 타입 별칭 (Type Alias)

  • 동일한 객체 구조를 여러 곳에서 사용할 경우,
    타입 별칭을 활용하면 가독성과 유지보수성이 좋아진다.
type User = {
  id: number;
  name: string;
}

const user: User = { id: 1, name: "ttining" };

2️⃣ 인터페이스 (Interface)

  • 인터페이스를 사용하면 객체 구조를 명확하게 정의할 수 있으며, 확장성이 좋아진다.
interface User {
  id: number;
  name: string;
}

const user: User = { id: 1, name: "ttining" };
  • interface는 상속이 가능하고, OOP 스타일의 코드에 적합하다.
  • typeinterface의 차이점은 필요에 따라 선택하면 된다.
    • type은 유니온 타입, 인터섹션 타입 등을 사용할 때 유용하다.


✅ 정리

  • object 타입은 객체임을 나타낼 뿐, 내부 구조를 알 수 없다.
  • 객체의 속성을 명확하게 정의하려면 객체 리터럴 타입을 사용해야 한다.
  • 코드 재사용성을 높이려면 타입 별칭(type alias) 또는 인터페이스(interface)를 활용하는 것이 좋다.
profile
내가 보려고 만든 벨로그 *'-'*

0개의 댓글