프론트엔드/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으로 간주됩니다.
아래 코드는 타입스크립트 코드를 자바스크립트 코드로 변형한 것이다.
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
보이는 것처럼 접근제한자가 타입스크립트에서만 사용된 걸 볼 수 있습니다.
자바스크립트에서는 없는 접근제한자 타입스크립트에서는 왜 존재하는 걸까요?
이는 접근제한자를 사용하면 클래스의 멤버에 대한 접근을 엄격하게 제어할 수 있습니다. 이는 코드 유지 보수성과 안정성을 향상시키고, 잘못된 사용을 방지하는 데 도움이 됩니다.