목차
1. 데이터 은닉화
2. readonly
1. 데이터 은닉화
클래스의 내부 상태에 대한 접근을 불가능하게 하고 메서드를 통해 제어된 액세스를 제공하기 위해서 사용되는 OOP 기법이다.
데이터를 은닉하게 되면 내부의 상태가 일관되게 유지되고, 무단으로 수정되는 것을 방지할 수 있다.
데이터 은닉화를 하는 방법은 private를 이용하여 객체를 생성하면 된다.
인스턴스를 생성했을 때 접근 할 수 있냐, 없냐에 따라서 private , public 으로 나눈다.
클래스 내부에서는 사용할 수 있지만, 인스턴스 생성 후에 상태를 접근할 수는 없다.
생성자 함수의 매개변수도 provate를 이용해서 작성할 수 있다.
class Auth {
private email: string
private password: string
constructor(private readonly email: string, password: string) {
this.email = email
this.password = password
}
public login(): void {}
}
const auth = new Auth("baekspace@a.com", "123123")
console.log(auth.email) // error TS2341: Property 'email' is private and only accessible within class 'Auth'.
보통 클래스에서 상태변수는 private이고 메서드는 public이다.
2. readonly
TypeScript에서는 readonly로 지정된 매개변수에 대해서는 생성자 함수에서 제거할 수 있다.
class Auth {
// private email: string // 생략가능
private password: string
constructor(private readonly email: string, password: string) {
// this.email = email //생략가능
this.password = password
}
public login(): void {}
}
생성자 함수에서 email 매개변수가 readonly로 선언되었기 때문에 생략이 가능하다.
Auth 클래스의 읽기 전용 속성이므로 클래스 본문에서 다시 선언하지 않고 클래스 속성으로 사용할 수 있다.
생략을 하더라도 Auth 클래스의 기능에 영향을 주지 않는다. 마찬가지로 생성자에서 this.email = email 줄도 생략이 가능하다.
생략을 함으로써 코드를 줄이고 클래스 정의를 더 간결하게 작성할 수 있다.
'🟨 JavaScript 🟨 > 🟦TypeScript🟦' 카테고리의 다른 글
객체 지향 프로그래밍(OOP) 예제코드 (0) | 2023.04.21 |
---|---|
브라우저 환경에서의 TypeScript (0) | 2023.04.21 |
TypeScript - Function과 Generics(제네릭 타입) (0) | 2023.04.20 |
TypeScript의 인터페이스, 클래스 및 객체지향프로그래밍 (OOP) (0) | 2023.04.19 |
TypeScript의 Type (0) | 2023.04.19 |
댓글