인프런 커뮤니티 질문&답변

구도진님의 프로필 이미지
구도진

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)

Post Entity

@Column 데코레이터의 type 옵션 및 기타 질문입니다..

작성

·

207

·

수정됨

0

안녕하세요 선생님 강의 수강 중 질문이 3가지 있어서 질문드려요 !

 

Post Entity 생성에서 body 컬럼을 이렇게 만드는데요.

@Column({nullable: true, type:"text"})

body: string;

Q. body는 string 이란것을 명시했는데 type:"text"를 따로 입력한 이유가 뭔가요 선생님~?

 

그리고 궁금한게 또 있습니다.

@Column()

@ManyToOne(()=> Post)

post: Post;

Q. Vote Entity 생성에서 post 컬럼을 만들 때 ManyToOne 데코레이터를 쓸 때 왜 타입만 명시하는건가요?

Post Entity 에서는 @ManyToOne(() => User, (user) => user.posts) 이렇게 사용하는데요 ㅠ

 

마지막 질문 입니다. Comment Entity 속 코드 인데요 reduce메소드에서 || 연산자가 어떻게 동작하는 지 궁금합니다. || or 연산자니까 (curObject.value || 0) 는 true or false 인데

Q. 왜 curObject.value 만 쓰지 않고 curObject.value || 0 을 더했는 지 궁금합니다 ㅠㅠ

@Expose() get voteScore(): number {

const initalValue = 0

return this.votes?.reduce((prevValue, curObject) => prevValue + (curObject.value || 0), initalValue)

}

 

 

 

답변 1

0

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요!!

1,2번 둘 다 명시해줘도 되고 안 해줘도 되는

옵션사항입니다.

1번도 type: "text" 안 넣어줘도 되며

2번도

export declare function ManyToOne<T>(typeFunctionOrTarget: string | ((type?: any) => ObjectType<T>), inverseSide?: string | ((object: T) => any), options?: RelationOptions): PropertyDecorator;

여기에 ManyToOne 정의된 것을 보면 inverseSide? <= 물음표 되어있는 게 옵션사항이라는 뜻입니다.

3번은 혹시나 curObject.value가 없을 때 방어코드로 0을 대신 사용하기 위해서 넣어줬습니다 ~

감사합니다.

구도진님의 프로필 이미지
구도진

작성한 질문수

질문하기