
privare 으로 설정한 프로퍼티를 읽거나 새로운 값을 할당할 때 사용한다.
타입스크립트(또는 자바스크립트)에서 getter와 setter는 객체의 속성에 접근하고 수정하는 방법을 제어하는 특별한 메서드이다.
get 키워드를 사용해 정의한다.set 키워드를 사용해 정의한다.Getter와 setter를 사용하면 클래스의 내부 상태를 보호하고, 속성 값을 검증하거나 변환하는 로직을 캡슐화할 수 있다.
다음은 타입스크립트에서 getter와 setter를 사용하는 예:
class Person {
private _name: string;
constructor(name: string) {
this._name = name;
}
// Getter
get name(): string {
return this._name;
}
// Setter
set name(newName: string) {
if (newName.length > 0) {
this._name = newName;
} else {
console.log('Error: Name must contain at least one character');
}
}
}
let john = new Person('John');
console.log(john.name); // "John" 출력
john.name = 'Jane'; // 이름 변경
console.log(john.name); // "Jane" 출력
john.name = ''; // 에러 메시지 출력: "Error: Name must contain at least one character"
위의 코드에서 name 속성은 실제로 _name 이라는 private 속성을 통해 내부적으로 관리되고 있다. name 속성에 접근하거나 값을 할당하려고 시도하면, 각각 getter와 setter가 호출된다. 이 예제의 setter는 newName이 적어도 하나 이상의 문자를 포함하고 있는지 확인하여 이름의 유효성을 검증한다.