자바스크립트에는 없는 객체 지향 개념

trina lee·2023년 5월 10일

자바스크립트에는 없는 것

1. private 키워드

  • 은닉화를 도와주는 기능
  • Java나 TypeScript는 클래스 내부에서만 쓰이는 속성 및 메서드를 구분시키기 위해 private이라는 키워드를 제공한다.

TypeScript에서 OOP 패턴으로 구현한 클래스 Animal 예시

class Animal {
  private name: string;

  constructor(theName: string) {
    this.name = theName;
  }
}

new Animal("Cat").name; // 사용 불가
// Property 'name' is private and only accessible within class 'Animal'. 

2. interface 키워드

  • 추상화(속성과 메서드의 이름만 노출시켜서 사용을 단순화하는 것, 인터페이스의 단순화) 기능
  • Java나 TypeScript는 interface를 구현해 놓았으며 이 인터페이스가 일종의 규약처럼 간주되어, 클래스를 구현하는 사람들이 이에 맞게 작성할 수 있게 돕는다.
  • 어떤 클래스가 외부 공개용으로 모듈처럼 작동할 때에 빛을 발한다. 이러한 인터페이스 사용의 대표적인 예가 API이다.

TypeScript에서 Interface와 class를 따로 정의한 예시

interface ClockInterface {
  currentTime: Date;
  setTime(d: Date): void;
}

class Clock implements ClockInterface {
  currentTime: Date = new Date();
  setTime(d: Date) {
    this.currentTime = d;
  }
  constructor(h: number, m: number) {}
}

결론

  • JavaScript에 더 많은 기능을 붙인 새로운 언어인, TypeScript는 보다 객체 지향적으로 디자인되었다.
profile
지금은 개발 모드

0개의 댓글