본문 바로가기

TypeScript - decorator / public & private & protected & readonly 본문

개발/nest.js

TypeScript - decorator / public & private & protected & readonly

자전하는명왕성 2023. 1. 28. 00:20

decorator 

데코레이터는 구조를 수정하지 않고 기존 객체에 새로운 기능을 추가할 수 있도록 하는 디자인 패턴이다.

일반적으로 데코레이터는 함수의 정의 전에 호출되며, 함수를 인수로 얻고 새로운 함수를 돌려주는 구조다.

(어찌보면 고차함수 | 콜백함수와 비슷한 느낌이다.)

정리하자면, 데코레이터는 코드를 꾸며주며, 타입스크립트에서는 그 기능을 함수로 나타내는 것.

@(골뱅이)로 표현되며, 그 안에는 메소드 / 프로퍼티 / 파라미터 / 클래스가 들어갈 수 있다.

데코레이터 작성 예시

데코레이터 콘솔 결과

 

CatController 클래스 위에 데코레이터 Controller 가 작성된 모습.

CatController 클래스가 함수의 매개변수로 받아져서

함수 Control 내부에서 사용됨으로, Controller 데코레이터가 사실은 함수였다는 것을 알 수 있다.

*구조가 매우 특이하니, 추가적인 공부를 하게 되면 추가한다.

 

public / private / protected / readonly /  private readonly

클래스를 다루는 것에 대해 정의하는 방식에 관련된 용어.

constructor 의 매개변수 앞에 작성해 줌으로써 활용이 가능하다. ex) public power (*power 는 매개변수)

  • public - 클래스 내부뿐만 아니라 클래스 밖에서도 사용 가능
  • private - 해당 클래스 내에만 사용이 가능하며, 자식 클래스에도 접근 및 수정이 불가
  • protected -해당 클래스 내부와 자식 클래스까지는 접근 및 수정이 가능하며, 밖에서는 접근 및 수정 불가
  • readonly - read-only 그 말마따나 읽기전용으로 접근은 모두 가능하나, 값은 변경 불가
  • private-readonly - 읽기 전용으로 해당 클래스 내부에서만 접근 가능하고, 자식&밖에서는 접근 불가

 

 

 

'개발 > nest.js' 카테고리의 다른 글

nestJS - MySQL과의 연동  (0) 2023.02.01
typeScript Generic / Utility  (1) 2023.01.31
eslint & prettier  (0) 2023.01.30
느슨한결합(loose-coupling)& 의존성주입(DI)  (0) 2023.01.27
nest.js - class 기초 / OOP / MVC 패턴  (0) 2023.01.26
Comments