[TypeScript] 접근제어자

kjy0124·2026년 3월 3일
post-thumbnail

🎯 접근제어자

접근제어자는 기본적으로 원래 public으로 설정되어있음

class Employee {
  public name: string;
  public age: number;
  public position: string;
  ...

위 코드와 같이 설정이 되어있었다는 뜻
그래서 아무것도 안쓰면 기본 값으로 public으로 지정이 된다는 뜻이다.

✅ private

  • 접근 제어자로 private로 설정하면 클래스 내부에서만 접근이 가능
  • 그래서 외부 접근시 아래 사진과 같이 오류가 발생
  • 하물며 기존 클래스에서부터 파생된 자식클래스에서도 오류가 발생

✅ protected

❓ 그렇다면 파생된 클래스에서는 사용하고 싶을 때 어떻게 해야할까?
  • 바로 protected를 사용하면 됨
protected age: number;
  • protected로 설정하게 해주면 외부에서는 접근이 불가하지만 파생 클래스에서는 접근이 가능

✅ 접근제어자 정리

private : 클래스 내부에서만 접근 가능
public : 클래스 내.외부에서 모두 접근 가능
protected : 외부에서는 접근이 불가하지만 파생 클래스까지만 접근 가능

💡 생성자에서도 접근제어자 작성 가능
constructor(private name: string, age: number, position: string) {
    this.name = name;
    this.age = age;
    this.position = position;
  }
  • 하지만 처음 접근생성자를 필드에 작성을 하면 생성자에서 또 작성시 오류가 발생
  • 이유는 처음 필드에서 정의가 되었는데 생성자에서 한번 더 정의를 하여서 중복되었다고 판단하기 때문
  • 그래서 생성자에서 접근제어자를 달아주게 된다면 매개변수는 자동으로 정의가 되며 초기화도 함께 자동으로 됨
  • 즉, 필드와 this 코드를 생략해도 된다는 뜻
class Employee {
  // 생성자
  constructor(
    public name: string,
    public age: number,
    public position: string,
  ) {}

  // 메서드
  work() {
    console.log("일중");
  }
}
  • 위 결과는 아래 사진과 같다.

출처

한 입 크기로 잘라먹는 타입스크립트
https://www.inflearn.com/course/한입-크기-타입스크립트/dashboard

profile
개발 공부...

0개의 댓글