타입스크립트 getter와 setter 예제
타입스크립트( Typescript )에서 클래스에 get과 set을 이용하여 getter와 setter를 만들 수 있다.
getter는 값을 읽을 때, setter는 값을 설정할 때 사용된다.
예를 들면,
일반 메서드와 달리 user.getName()처럼 호출하지 않고,
user.name이나 user.name = "홍길동"처럼 일반 속성을 사용여 접근한다.
getter와 setter는 클래스의 프로퍼티에 접근할 때 사용하는 접근자(accessor) 이다.
get은 값을 읽고,
set은 값을 설정한다.
단순히 값을 저장하고 읽기만 한다면 일반 public 필드를 사용해도 되지만, 값의 검사나 변환 같은 추가 처리가 필요할 때 getter와 setter 프로퍼티를 사용할 수 있다.
⊙
class User {
private _name: string = "";
get name(): string {
return this._name;
}
set name(value: string) {
this._name = value;
}
}
⊙
class User {
private _name: string = "홍길동";
get name(): string {
return this._name;
}
}
const user = new User();
console.log(user.name);
⊙
class User {
private _name: string = "";
set name(value: string) {
if (value.length < 2) {
throw new Error("이름은 2글자 이상이어야 한다.");
}
this._name = value;
}
}
const user = new User();
user.name = "홍길동";
⊙
class User {
private _name: string = "";
get name(): string {
return this._name;
}
set name(value: string) {
const trimmedName = value.trim();
if (trimmedName.length === 0) {
throw new Error("이름은 비어 있을 수 없다.");
}
this._name = trimmedName;
}
}
const user = new User();
/* setter 실행 */
user.name = " 홍길동 ";
/* getter 실행 */
console.log(user.name);
⊙
/* 일반 프로퍼티처럼 값을 저장한다. */
user.name = "홍길동";
/* 일반 프로퍼티처럼 값을 읽는다. */
console.log(user.name);
/* getter 사용 방법이 아니다. */
// user.name();
/* setter 사용 방법이 아니다. */
// user.name("홍길동");
댓글
댓글 쓰기