TypeScript

[TypeScript] 인터페이스

wwxs 2024. 8. 20. 12:28

인터페이스(interface)

  • 객체 구조를 정의하는 타입스크립트의 정의
  • 함수 타입 정의도 가능 → 객체가 어떤 프로퍼티와 메서드를 가져야 하는지 명시
  • 컴파일 시점에 타입 체킹을 위해 사용되는 개념 → 다양한 구현체에 동일한 인터페이스를 적용해서 일관성과 재사용성 제공

인터페이스 구현 방법

  • interface 키워드를 사용하여 명시(인터페이스명은 대문자로 시작)
더보기
interface IUser {
  // 객체의 속성 타입을 명시
  name?: string;
  readonly age: number;

  // 객체의 메서드 타입을 명시
  // 메서드명(매개변수: 타입): 반환타입;
  // >> 객체의 메서드(함수)의 경우 function 키워드 사용 x
  greet(): void;
}

let userA: IUser = {
  age: 50,
  greet: () => {
    console.log('반환값이 없는 메서드');
  }
};

userA.greet();

 

클래스에서 인터페이스 구현

  • implement 키워드를 사용하여 해당 타입을 가지는 클래스를 정의
class Student implements IUser{
  name: string;
  age: number;

  constructor(name: string, age: number){
    this.name = name;
    this.age = age;
  }
  greet() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

const student1 = new Student('황현지', 30);
const student2 = new Student('권세혁', 40);

student1.greet();
student2.greet();