반응형

데코레이터 5

[NestJS] [데코레이터] 매개변수 데코레이터

매개변수 데코레이터 생성자 또는 메서드의 매개변수에 선언되어 적용 선언파일 선언클래스에서는 사용될 수 없다 반환값 무시 호출시 3개의 인수와 함께 호출됨 정적멤버가 속한 클래스의 생성자 함수이거나 인스턴스멤버에 대한 클래스의 프로토타입 멤버의 이름 매개변수가 함수에서 몇 번째 위치에 선언되었는지를 나타내는 인덱스 구현 import { BadRequestException } from '@nestjs/common'; export class ParameterDecorationTest { private name: string; @Validate setName(@MinLength(3) name: string) { this.name = name; } } function MinLength(min: number) { ..

재학습/NestJS 2023.06.21

[NestJS] [데코레이터] 접근자 데코레이터

접근자 데코레이터 접근자 바로 앞에 선언 접근자의 속성 설명자에 적용 접근자의 정의를 읽거나 수정할 수 있음 선언파일과 선언클래스에는 사용할 수 없음 반환값은 해당 멤버의 속성 설명자 구현 특정 멤버가 열거가 가능한지 결정하는 데코레이터 export class AccessorDecorationTest { constructor(private name: string) {} @Enumerable(true) get getName() { return this.getName; } @Enumerable(false) set setName(name: string) { this.name = name; } } function Enumerable(enumerable: boolean) { return function ( tar..

재학습/NestJS 2023.06.20

[NestJS] [데코레이터] 메서드 데코레이터

메서드 데코레이터 메서드 바로 앞에 선언 메서드의 속성 설명자(Property Descriptor)에 적용된다. 메서드의 정의를 읽거나 수정할 수 있다. 선언파일, 오버로드메소드, 선언클래스에는 사용할 수 없다. 메서드속성설명자(Property Descriptor)란? 객체속성의 특성을 기술한다. (속성의 정의를 수정할수있는지 여부, 열거형인지 여부, 속성 값, 수정가능여부, getter, setter) 메서드 데코레이터는, 세 개의 인수를 가진다. target: any, propertyKey: string, descriptor: PropertyDescriptor 정적 멤버가 속한 클래스의 생성자 함수이거나, 인스턴스 멤버에 대한 클래스의 프로토타입 멤버의 이름 멤버의 속성설명자(Property Desc..

재학습/NestJS 2023.06.19

[NestJS] [데코레이터] 클래스 데코레이터

클래스 데코레이터 클래스 바로 앞에 선언 클래스의 생성자에 적용 클래스의 정의를 읽거나 수정 가능 선언파일과 선언클래스내에서는 사용불가능 구현 @reportableClassDecorator export class ClassDecorationTest { type = 'report'; title: string; constructor(t: string) { this.title = t; } } function reportableClassDecorator( constructor: T ) { return class extends constructor { reportingURL = 'http://www.example.com'; }; } 클래스데커레이터는 생성자를 리턴하는 함수다. 결과 reportingURL은 선언해..

재학습/NestJS 2023.06.18

[NestJS] [데코레이터]

데코레이터 개념 횡단관심사를 분리하여 관점지향 프로그래밍을 할 수 있도록 해주는 기능 자바의 애너테이션과 유사함 @키워드를 붙여 사용 DTO검증뿐만아니라 다양한곳에 활용 가능 데코레이터 합성 각 데코레이터 표현은 위에서 아래로 평가된다. 결과는 아래에서 위로 함수로 호출된다. export class DecoCompositionTest { @first() @second() method() { console.log('method is called'); } } function first() { console.log('first() : factory evaluated'); return function ( target: any, propertyKey: string, descriptor: PropertyDescri..

재학습/NestJS 2023.06.17
반응형