Protected
private와 비슷한 키워드로, private는 자신의 class {} 안에서만 사용과 수정이 가능했다면,
protected는 자신의 class {} 와 extends로 복사한 클래스까지 사용과 수정이 가능하다.
class User {
protected x = 10;
}
class NewUser extends User {
addX(){
this.x = 20;
}
}
User를 extends 하는 NewUser에서 x는 가져다가 사용할 때,
x가 private 속성일 경우 에러가 나지만,
x가 protected 속성일 경우엔 에러가 나지 않는다.
class를 여러개 만들 때 class 끼리 공유할 수 있는 속성을 만들 때는 protected,
자신 class안에서만 사용할 수 있는 속성을 만들고 싶다면 private을 사용하면 된다.
Static
class {} 안에 넣는 변수와 함수는 전부 class로부터 생성되는 object에게 부여된다.
하지만 class에게 직접 변수나 함수를 부여하고 싶다면 static 키워드를 붙여주면 된다.
class User {
static x = 10;
y = 20;
}
let john = new User();
john.x // 불가능
User.x // 가능
자바스크립트에서 Math라는 class를 자주 사용했을 것이다.
이것도 class인데, new Math를 통해서 사용하는 것이 아닌 static을 통해서 사용하는 방법이다.
반응형
'TypeScript > 기초' 카테고리의 다른 글
[TypeScript] React에서 사용하기_1편 (1) | 2022.07.09 |
---|---|
[TypeScript] Generic (1) | 2022.07.08 |
[TypeScript] Public & Private (1) | 2022.07.07 |
[TypeScript] never 타입 (1) | 2022.07.06 |
[TypeScript] Narrowing 할 수 있는 방법 (1) | 2022.06.23 |