파일을 둘러보다보니, 다음과 같은 코드가 있었다.
export const ActivityType = {
...
} as const;
export type ActivityType = (typeof ActivityType)[keyof typeof ActivityType];
도대체 typeof와 keyof가 무엇이냐 말이다!
결론적으론, ActivityType 내부에 쓰여진 항목들을 다른 파일에서 import 해와서 잘 쓸 수 있다는 것.
일단 정의를 보자면,
typeof : 객체 데이터를 객체 타입으로 변환해주는 연산자
객체는, 객체 자체를 type으로 쓸 수 없는데 객체에 쓰인 type 구조를 그대로 가져와 독립된 타입으로 만들어 사용하고 싶을때 사용한다
* class는 class 자체가 객체 type이 될 수 있어 typeof는 필요 없다.
keyof : 객체 형태의 타입을 따로 속성들만 모아 union type(A OR B의 개념)으로 만들어주는 연산자
https://inpa.tistory.com/entry/TS-%F0%9F%93%98-%ED%83%80%EC%9E%85%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-keyof-typeof-%EC%82%AC%EC%9A%A9%EB%B2%95 여기 예제를 참고해보면 좋다.
'Backend > NestJS' 카테고리의 다른 글
param.ts 파일이나 dto에서 다른 파일에서 쓰여진 Enum 끌고오기 (0) | 2023.10.17 |
---|---|
must be a number conforming to the specified constraints (0) | 2023.10.17 |
다른 api 호출해오는법 (feat. httpService) (0) | 2023.10.17 |
api.module.ts에서 global:true로 넣기 (0) | 2023.09.20 |
rabbitMQ) prefetchCount란? (0) | 2023.09.18 |