-
protected, staticTypescript 2022. 6. 17. 12:54
private와 비슷한 protected는 똑같이 class내에서 사용하며 확장성을 좀 더 늘렸다.
예를 들면,
class User { private x = 10; } class NewUser extends User { }
이렇게 쓰면 NewUser에선 x를 가져다 쓸 수 없다. 하지만 protected를 쓰면 extends된 class내에서도 사용가능하다.
즉, private는 클래스 내에서, protected는 클래스와 extends된 class까지 가능하다. 역시 둘다 자식에선 사용 불가능하다.
이제, static키워드를 알아보자.
class User { static x = 10; y = 20; } let 자식 = new User();
위처럼 쓰고, 자식을 찍어보면 y값만 나오게 된다. static키워드를 붙이면 부모 class내에 직접 부여되며, 자식들이 가져다 쓸 수 없게 한다. 즉, 물려주지 않는다.
그래서 x를 사용하려면 User.x이렇게 부모클래스만 쓸 수 있다.
그리고 static은 public,private,protected와 같이 쓸 수 있다. (ex public static x = 20;)
이제 활용해보자.
class User { static skill = 'js'; intro = User.skill + '전문가입니다' } var 철수 = new User(); console.log(철수); User.skill = 'python'; var 민수 = new User(); console.log(민수);
위처럼 입력하면 철수는 js전문가 민수는 python전문가가 된다. 이런 중요한 변수들은 자식에서 수정이 불가능하게 static키워드를 사용해서 부모클래스에서만 사용가능하게 할 수 있다.
사실 숨기고 싶으면 private나 protected키워드가 좀 더 낫다.
'Typescript' 카테고리의 다른 글
타입을 파라미터로 입력하는 Generic (0) 2022.06.17 타입 import/export와 namespace (0) 2022.06.17 객체지향언어같은 문법제공(public, private) (0) 2022.06.17 함수에 사용하는 never타입 (0) 2022.06.17 narrowing이나 더 알아보기 (0) 2022.06.17