티스토리 뷰

반응형

Typescript는 객체지향 프로그래밍 언어이며, 클래스와 인터페이스를 사용할 수 있습니다.

클래스

클래스는 객체를 생성하기 위한 일종의 템플릿으로, 클래스를 정의하면 객체를 생성할 때 사용할 수 있는 속성과 메서드가 정의됩니다.

아래는 Typescript에서 클래스를 정의하는 예시입니다.

class Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  sayHello() {
    console.log(`안녕하세요, ${this.name}입니다. ${this.age}살입니다.`);
  }
}

const person = new Person('홍길동', 20);
person.sayHello(); // "안녕하세요, 홍길동입니다. 20살입니다."

위의 코드에서 Person 클래스는 name과 age라는 두 개의 속성과 sayHello라는 메서드를 가지고 있습니다. 객체를 생성할 때 name과 age를 인자로 전달하여 속성을 초기화하고 sayHello 메서드를 호출할 수 있습니다.

인터페이스

인터페이스는 객체의 형태를 정의하는 일종의 규칙으로, 인터페이스를 구현한 객체는 인터페이스에서 정의한 속성과 메서드를 반드시 구현해야 합니다.

아래는 Typescript에서 인터페이스를 정의하는 예시입니다.

interface Person {
  name: string;
  age: number;
  sayHello(): void;
}

class Korean implements Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  sayHello() {
    console.log(`안녕하세요, ${this.name}입니다. ${this.age}살입니다.`);
  }
}

const person: Person = new Korean('홍길동', 20);
person.sayHello(); // "안녕하세요, 홍길동입니다. 20살입니다."

위의 코드에서 Person 인터페이스는 name과 age라는 두 개의 속성과 sayHello라는 메서드를 가지고 있습니다.

Korean 클래스는 Person 인터페이스를 구현하고 있으며,

name과 age를 초기화하고 sayHello 메서드를 구현하고 있습니다.

마지막으로 Person 타입으로 Korean 객체를 생성하여 sayHello 메서드를 호출할 수 있습니다.

 

 

반응형
댓글