-
객체지향언어같은 문법제공(public, private)Typescript 2022. 6. 17. 11:58
타입스크립트를 쓰면 객체지향언어같은 문법을 제공한다.
public private protected static같은 키워드인데, 이 키워드들은 class를 많이 만들어서 개발할 때 유용하다.
class User { public name: string; constructor(){ this.name = 'kim'; } } let 유저1 = new User(); 유저1.name = 'park'; //가능
위처럼 필드값에 public키워드를 붙일 수 있는데, 붙이면 모든 자식들이 사용가능하게 해준다.
코드를 보니
class User { name: string = 'Kim'; constructor(a){ this.name = a; } } let 유저1 = new User('Park);
이렇게 써도 같기 때문에 public키워드는 굳이 안붙여도 원래 숨겨 있다고 생각하면 된다.
이제 private를 보면,
class User { public name :string; private familyName :string = 'Kim'; constructor(a){ this.name = a; } } let 유저1 = new User('민수'); 유저1.familyName = 456; //에러남
위처럼 prievate키워드를 쓰면, 자식에서 사용할 때 에러가 나게 된다.
즉, private가 붙으면 class 안에서만 수정, 이용가능해진다.
그러면 안에서 수정/이용하는 예시를 보면,
class User { public name :string; private familyName :string = 'Kim'; constructor(a){ this.name = a + this.familyName; } 이름변경함수() { this.familyName = 'Park'; } } let 유저1 = new User('민수'); console.log(유저1);
이렇게 입력하면 민수Kim이 출력된다.
만약 private키워드로 선언한 걸 자식들이 바꿔야 하는 상황이 온다면, class내부에서 변경함수를 제작하고, 그 함수를
유저1.이름변경함수() 이렇게 자식들이 사용하면 된다.
마지막으로 public키워드를 쓰면, this.어쩌구가 생략가능해진다.
class Person { constructor ( public name :string ){ } } let 사람1 = new Person('john')
이렇게 constructor의 파라미터 자리에 public키워드를 이용해서 this를 생략할 수 있게 한다.
'Typescript' 카테고리의 다른 글
타입 import/export와 namespace (0) 2022.06.17 protected, static (0) 2022.06.17 함수에 사용하는 never타입 (0) 2022.06.17 narrowing이나 더 알아보기 (0) 2022.06.17 함수의 rest파라미터와 destructuring타입지정 (0) 2022.06.17