끄적끄적 메모장

[TypeScript] Public, Private, Protected에 대해서 알아보자 본문

프론트엔드/TypeScript

[TypeScript] Public, Private, Protected에 대해서 알아보자

병걸 2023. 5. 17. 16:45

 

TypeScript에서 접근 제한자가 있습니다.

접근제한자란? 말 그대로 접근을 제한하기 위해 사용됩니다. 클래스 및 인터페이스 등에 대한 접근을 통제하는 역할을 합니다.

접근 제한자는 Public, Private, Protected와 같이 세 가지 종류가 있습니다.

접근제한자 public protected private
클래스 내부 O O O
자식 클래스 내부 O O X
클래그 인스턴스 O X X

 

먼저 Private를 활용한 예시를 보자

class MyClass {
  private privateVariable: number = 10;

  private privateMethod(): void {
    console.log('This is a private method.');
  }
}

위 코드와 같이 private키워드를 사용하여 멤버를 클래스 내부에서만 접근 가능하도록 지정할 수 있습니다.

 

두번째로 Protected를 활용한 예시를 보자

class MyBaseClass {
  protected protectedVariable: number = 20;

  protected protectedMethod(): void {
    console.log('This is a protected method.');
  }
}

class MySubClass extends MyBaseClass {
  constructor() {
    super();
    this.protectedVariable = 30; // 접근 가능
  }

  protectedMethod(): void {
    console.log('This is an overridden protected method.'); // 접근 가능
  }
}

protecter 키워드를 사용하여 해당 멤버를 해당 클래스 및 하위 클래스에서만 접근 가능하도록 지정할 수 있습니다.

 

세번쨰로 Public를 활용한 예시를 보자

class MyPublicClass {
  public publicVariable: number = 40;

  public publicMethod(): void {
    console.log('This is a public method.');
  }
}

public 키워드를 사용하여 해당 멤버가 어디든 접근 가능하도록 지정할 수 있습니다. public은 생략이 가능하며, 기본적으로 모든 멤버에는 public으로 간주됩니다.

 

아래 코드는 타입스크립트 코드를 자바스크립트 코드로 변형한 것이다.

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

보이는 것처럼 접근제한자가 타입스크립트에서만 사용된 걸 볼 수 있습니다.

 

자바스크립트에서는 없는 접근제한자 타입스크립트에서는 왜 존재하는 걸까요?

이는 접근제한자를 사용하면 클래스의 멤버에 대한 접근을 엄격하게 제어할 수 있습니다. 이는 코드 유지 보수성과 안정성을 향상시키고, 잘못된 사용을 방지하는 데 도움이 됩니다.

Comments