TypeScript)getter&setter

Songss·2025년 1월 13일

TypeScript

목록 보기
10/10

private 멤버변수를 외부에서 접근할 수 있을까 ?

private 멤버 변수는 외부에서 직접적으로 접근할 수 없습니다. 그러나 TypeScript에서는 간접적으로 접근하거나 값을 읽고 설정할 수 있는 방법이 있습니다. 이런 방식은 gettersetter를 활용하는 것입니다.

관례 : private 멤버변수에 작명시 첫 글자로 _를 붙혀서 사용합니다.

class Employee {
  // 직원 정보
  private _empName: string;
  public age: number;
  protected empJob: string;

  constructor(empName: string, age?: number, empJob?: string) {
    this._empName = empName;
    this.age = age;
    this.empJob = empJob;
  }

  printEmp = (): void => {
    console.log(`${this._empName} 의 나이는 ${this.age} 이고, 직업은 ${this.empJob} 입니다.`);
  };

  get empName(): string {
    return this._empName;
  }

  set empName(name: string) {
    this._empName = name;
  }
}

// Employee 인스턴스 생성
const emp1 = new Employee('seungsoo', 32, 'develop');

// printEmp() 호출
emp1.printEmp();         // seungsoo 의 나이는 32 이고, 직업은 develop 입니다.
emp1.empName = 'SONG';   // set 접근 , 'seungsoo'에서 'SONG' 값 변경
emp1.printEmp();         // SONG 의 나이는 32 이고, 직업은 develop 입니다.
const aa = emp1.empName; // get 접근 , 'SONG'
  1. get , set 키워드를 사용해서 함수형 프로퍼티 empName 작성해줍니다.
  2. 인스턴스 객체 생성 후
    1. emp1.empName = 'SONG'; 으로 set empName() 에 접근할 수 있고
    2. const aa = emp1.empName; 으로 get empName() 에 접근할 수 있습니다.

0개의 댓글