Typescript 인터페이스 클래스

김응진·2024년 8월 7일
0

TypeScript에서 인터페이스와 클래스는 서로 다른 목적으로 사용됩니다.

인터페이스 (Interface): 인터페이스는 객체의 구조를 정의합니다. 인터페이스는 속성과 메서드의 형태를 지정할 수 있으며, 구현 자체는 하지 않습니다. 이를 통해 코드의 타입 안전성을 높이고, 타입 체킹을 용이하게 합니다.

interface User {
  name: string; // 이름 속성, 문자열 타입
  id: number;   // ID 속성, 숫자 타입
}

User 인터페이스는 name과 id라는 두 개의 속성을 가지고 있습니다. 이 인터페이스를 구현하는 모든 클래스나 객체는 이 두 속성을 반드시 가져야 합니다.

  1. 클래스 정의 및 인터페이스 구현
class UserAccount implements User {
  name: string; // 이름 속성, 문자열 타입
  id: number;   // ID 속성, 숫자 타입
  
  // 생성자: 객체가 생성될 때 이름과 ID를 초기화
  constructor(name: string, id: number) {
    this.name = name;
    this.id = id;
  }
}
UserAccount 클래스는 User 인터페이스를 구현합니다. implements 키워드를 사용하여 클래스가 인터페이스를 구현하도록 명시합니다. 이 클래스는 User 인터페이스에서 정의된 name과 id 속성을 포함하고, 이를 생성자를 통해 초기화합니다.
  1. 객체 생성
const user: User = new UserAccount("Murphy", 1);

User 타입의 user 객체를 생성합니다. new UserAccount("Murphy", 1)를 통해 UserAccount 클래스의 인스턴스를 만들고, 이를 user 변수에 할당합니다.

전체 코드

interface User {
  name: string; // 이름 속성
  id: number;   // ID 속성
}

class UserAccount implements User {
  name: string; // 이름 속성
  id: number;   // ID 속성
  
  // 생성자: 객체가 생성될 때 이름과 ID를 초기화
  constructor(name: string, id: number) {
    this.name = name;
    this.id = id;
  }
}

const user: User = new UserAccount("Murphy", 1); // User 타입의 객체 생성

요약
인터페이스 (User): 객체의 구조를 정의합니다.
클래스 (UserAccount): 인터페이스를 구현하며, 객체를 생성할 수 있는 템플릿을 제공합니다.
객체 생성: UserAccount 클래스의 인스턴스를 생성하여 User 타입으로 할당합니다.
이 코드 구조는 타입 안전성을 높이고 코드의 명확성을 유지하는 데 도움이 됩니다.

profile
Developer

0개의 댓글