일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 딥러닝
- 순환신경망
- 정보처리기사실기
- 자바
- SQL
- 컴퓨터구조
- html/css
- 중학1-1
- 상속
- 컴퓨터비전
- rnn
- 디버깅
- 정보처리기사필기
- JSP/Servlet
- 쇼핑몰홈페이지제작
- ChatGPT
- 머신러닝
- 타입스크립트심화
- 자바스크립트심화
- 개발일기
- JDBC
- JSP
- 데이터분석
- 자바스크립트
- 혼공머신
- 연습문제
- 중학수학
- 파이썬
- 데이터베이스
- 자바 실습
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
데코레이터 4 - Class Decorator 본문
이번에는 클래스 데코레이터에 대해서 학습해 보겠다.
이론 4 - Class Decorator
값을 반환하는 경우도 있다.
타입 에러가 나지만 실제로는 접근 가능하다.
퀴즈 4 - 클래스 데코레이터
아무리 봐도 모르겠기에 찍었다. 문제에 대한 해설은 다음과 같다.
문제에 대한 설명
먼저, 문제에서 주어진 코드에는 addGenre라는 함수가 있다. 이 함수는 문자열인 genreArg를 매개변수로 받아들이고, 하나의 인자를 가진 함수를 반환한다.
addGenre 함수 안에서는 클래스 데코레이터 역할을 하는 함수가 정의되어 있다. 이 함수는 제네릭 타입(T)과 생성자 함수(constructor)를 매개변수로 받아들인다. return 문에서는 class extends constructor를 사용해서 새로운 클래스를 만들다. 이 새로운 클래스는 기존 생성자 함수로부터 상속받고, genre라는 프로퍼티를 추가한다.
이렇게 만들어진 새로운 클래스는 genre 프로퍼티를 가져야 한다. 따라서 genre = genreArg; 라는 코드를 작성해야 한다.
마지막으로, 주어진 예제인 Movie 클래스에 genre 프로퍼티가 추가되었다. 그렇게 만든 eliceMovie 객체를 생성하고, console.log로 확인해 보면eliceMovie.genre 값이 “Thriller”로 출력된다. 이는 우리가 addGenre 데코레이터를 사용해서 Movie 클래스에 genre 프로퍼티를 추가했기 때문이다.
그래서 주어진 코드가 잘 작동하고, genre 프로퍼티를 추가한 Movie 클래스의 객체가 원하는 결과를 보여준다.
문제 다시 풀기
실습 2 - 클래스 데코레이터
문제 풀기
Constructor 타입을 extends하는 제네릭 타입 파라미터를 T로 정의하고 넣어준다. 그런 다음 데코레이터 function을 작성한다. 추가해야 할 프로퍼티는 url이다.
설명은 들어도 무슨 말인지 모르겠기에 자세한 내용은 생략한다. 나중에 필요할 때 더 찾아보며 학습할 생각이다.
코드 실행하기
실행하니 엄청 많은 정보들이 출력된다.
학습을 마치고
이해가 되지 않는 내용이 많아서 마음이 좋지 않았다. 하지만 이건 심화 과정이라 한 번에 이해하기는 힘들다. 그냥 이런 게 있고 어떨 때 사용하는지 정도만 익히고 넘어가기로 하자. 깊이 공부하다가는 시간이 없어 다 하지 못할 것 같다.
'웹 · 앱 개발 > 타입스크립트' 카테고리의 다른 글
데코레이터 6 - Accessor Decorator (0) | 2024.12.28 |
---|---|
데코레이터 5 - Method Decorator (0) | 2024.12.27 |
데코레이터 3 - Decorator Factory (0) | 2024.12.27 |
데코레이터 2 - 데코레이터를 쓰기 전 알아야 할 자바스크립트 개념 (0) | 2024.12.27 |
데코레이터 1 - 데코레이터의 정의 (0) | 2024.12.27 |