TypeScript의 클래스(Class)

Taehye.on·2023년 6월 1일
0

코드스테이츠 44기

목록 보기
81/89
post-thumbnail

D-64

🔍 TypeScript의 클래스(Class)

  • JavaScript에서의 클래스(Class)
  • 클래스를 사용하면 객체를 생성하고 객체의 속성과 메서드를 정의할 수 있다. ```javascript class Person { constructor(name, age) { this.name = name; this.age = age; } greet() { console.log(`안녕하세요, 제 이름은 ${this.name}이고, ${this.age}살 입니다.`); } }

    const person = new Person('Alice', 30);
    person.greet(); // "안녕하세요, 제 이름은 Alice이고, 30살 입니다."

    
    <li>TypeScript에서의 클래스(Class)</li>
    ```TypeScript
    class Person {
      name: string;
      age: number;
    
      constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
      }
    
      greet(): void {
        console.log(`안녕하세요, 제 이름은 ${this.name}이고, ${this.age}살 입니다.`);
      }
    }
    
    const person = new Person('Alice', 30);
    person.greet(); // "안녕하세요, 제 이름은 Alice이고, 30살 입니다."

    🔍 클래스와 상속(Inheritance)

    extends 키워드를 사용하여 상속할 수 있다.

    class Animal {
        move(distanceInMeters: number): void {
            console.log(`${distanceInMeters}m 이동했습니다.`);
        }
    }
    
    class Dog extends Animal {
        speak(): void {
            console.log("멍멍!");
        }
    }
    
    const dog = new Dog();
    dog.move(10);
    dog.speak();

    📌 public, private 키워드

    클래스 내에 선언된 맴버는 외부로 공개되는 것이 디폴트 값이다. 이때 public키워드를 사용하면 공개가 된다 명시적으로 표시해 줄 수 있다.

    class Person {
      public name: string;
      public age: number;
    
      constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
      }
    
      greet(): void {
        console.log(`안녕하세요, 제 이름은 ${this.name}이고, ${this.age}살 입니다.`);
      }
    }

    외부로 드러내지 않을 맴버가 있는 경우 private 키워드를 사용하면 된다.

    class Person {
      public name: string;
      private age: number;
    
      constructor(name: string, age: number) {
        this.name = name;
        this.age = age;
      }
    
      greet(): void {
        console.log(`안녕하세요, 제 이름은 ${this.name}이고, ${this.age}살 입니다.`);
      }
    }

    📌 readonly 키워드

    readonly 키워드를 사용하여 프로퍼티를 읽기 전용으로 만들 수 있다. 읽기 전용 프로퍼티들은 선언 또는 생성자에서 초기화해야 한다.

    class Mydog {
        readonly name: string;
        constructor(theName: string) {
            this.name = theName;
        }
    }
    let spooky = new Mydog("스푸키");
    spooky.name = "멋진 스푸키"; // 에러

    이처럼 namereadonly로 명시되어 값을 변경할 수 없다.

    0개의 댓글