코딩애플 Typescript - public, private 쓰는거 보니까 타입스크립트 귀여운편

김원종·2024년 4월 16일
0

TypeScript 학습

목록 보기
16/28

타입스크립트를 쓰면 자바스크립트에 없는 문법도 사용가능 하다.
객체 지향 언어에서 제공하는 public , private , static , protected 이런 키워드를 사용가능한데 이걸 사용시의 장점은 객체지향으로 코드를 구성할때 일명 class를 많이 만들어서 코드를 구성할 일이 많을때 위 4개의 키워드를 이용하면 코드를 좀 더 깔끔하고 유용하게 구성할수 있다.

이렇게 class를 선언했을때 name = 'kim' 으로 적으나 constructor로 만드나 결과는 같을것이다.

그런데 constructor 가 존재하는 이유는 즉 차이는 파라미터값을 지정할수 있어서 이제 User에서 새로운 오브젝트를 뽑을때 파라미터를 입력할수 있다는 점이다. 만약 constructor가 없이 작성하면 무조건 User ='kim' 이 될것이다.

public에 대해 알아보자. public 키워드를 붙이면 모든 생성되는 오브젝트에서 name속성을 자유롭고 가져다 사용하고 수정이 가능하다 즉 모든 자식들이 이용이 가능하다는 것인데 근데 public키워드가 없어도 가능하니 있으나 없으나 별의미가 없다. 우리가 일반적으로 코드를 구성할때 public 키워드가 숨겨져 있다고 생각하면 된다. 당연히 함수에도 사용이 가능하다.

반면 private는 자식 요소들이 수정할수가 없다. private이 붙으면 class안에서만 수정, 이용이 가능하다.뭔가 어떤 속성을 숨기고 싶을때 물려주는것이 아니라 보호하고 싶은 속성일때는 private을 붙여주면 된다.

예를들어 이렇게 familyName 즉 성은 수정하지 못하게 하고 이름은 수정이 가능하게 하여 항상 성은 그대로 유지되게 구성할수가 있다. private 를 붙이면 수정이 불가능 하기 때문이다.
나중에 혹시 성이 변경되더라도 class안에서 수정,사용이 가능하기때문에 문제는 생기지 않는다.

그런데 만약 비상상황이 생겨서 class밖에서 변경하고 싶으면 어떻게 할까?

이렇게 함수를 하나 설정해두고 자식들이 변경하게 하면 될것이다. 함수는 자식들이 호출 할 수 있으니 문제가 생기진 않을것이다.

그리고 public을 사용해서 this.~~ 이런것을 생략이 가능한데 constructor에 public을 설정한 파라미터로 지정하면 위처럼 자식 이름을 파라미터로 전달했을때 name값이 들어간다 . 위 문법은 해당 자리에 들어온 파라미터는 자식의 name속성에 기입해달라는 뜻이다.

profile
개린이

0개의 댓글