노트 #32 | 타입스크립트의 클래스 개요

HyeonWooGa·2022년 7월 22일
0

노트

목록 보기
33/74

개요

타입스크립트는 보다 객체 지향적으로 디자인되었습니다.


학습 목표

  • 타입스크립에서 클래스를 어떻게 생성하는지 학습한다.
  • 타입스크립트 private 키워드에 대해 학습한다.
  • 타입스크립트 interface 키워드에 대해 학습한다.

은닉화

Javascript 에 없는 private 키워드를 제공하여 은닉화를 도와줍니다.

  • private
    • 인스턴스의 속성을 선언한 클래스 내에서만 접근 가능하게 해줍니다.

    • private 키워드가 붙은 프로퍼티는 _(언더바)를 붙이는것이 통상적이라고 합니다.

    • 예시

      // TypeScript
      
      class Animal {
        private _name: string;
        
        constructor(theName: string) {
          this._name = theName;
        }
        
        get getName(): string {
          return this._name;
        }
        
        set setName(newName: string) {
          this._name = newName;
        }
      }
      
      const tiger = new Animal('tiger');
      console.log(tiger.getName()); // 'tiger'
      
      tiger.setName('cat');
      console.log(tiger.getName()); // 'cat'

추상화

JavaScript 에 없는 interface 키워드를 제공하여 추상화를 도와줍니다.

  • interface 키워드
    • 일종의 규약처럼 간주되어 구현하는 사람들이 이에 맞게 작성할 수 있도록 돕습니다.

    • 실질적인 구현방법을 공개하지 않고 사용법을 노출시키기에 유리합니다.

      • API 가 이 속성의 대표적인 예가 됩니다.
    • 정의되는 interface 의 첫문자는 대문자로 쓰는 것이 통상적입니다.

    • 예시

      // TypeScript
      
      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) {}
      }

profile
Aim for the TOP, Developer

0개의 댓글