작성
·
398
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
코드팩토리 통합 링크
https://links.codefactory.ai
안녕하세요 혹시
원래 만든 postModel 인터페이스에서
export interface PostModel {
id: number;
author: string;
title: string;
content: string;
likeCount: number;
commentCount: number;
}
이렇게 author가 string으로 되어있어서 오류가 나오는데 이건 어떻게 처리하나요?
The expected type comes from property 'author' which is declared here on type 'DeepPartial<PostModel>'
터미널에서는 이렇게 오류가 나옵니다
타입 관련 오류인데 이게 아래에선 postmodel을 받는데 author을 authorId가 들어간 객체로 받는데 위에선 선언을 string으로 해줬는데 이것도 잘 이해가 안 갑니다..
async createPost(authorId: number, title: string, content: string) {
// 1) create -> 저장할 객체를 생성한다.
// 2) save -> 객체를 저장한다. (create 메서드에서 생성한 객체로)
const post = this.postsRepository.create({
author: {
id: authorId,
},
title,
content,
likeCount: 0,
commentCount: 0,
});
const newPost = await this.postsRepository.save(post);
return newPost;
}
답변 1
0
안녕하세요!
말씀하신 PostModel 인터페이스는 데이터베이스를 사용하지 않을때 모델을 정의하기 위해 사용했습니다.
데이터베이스 테이블은 이미 강의를 들으신 것 처럼 Typeorm을 사용했기 때문에 PostModel 인터페이스는 아무런 관련이 없습니다.
author를 String 값이 아닌 객체로 입력하는 이유도 마찬가지입니다. Typeorm을 사용해서 post 테이블과 user 테이블을 연동하였고 연동 column은 post 테이블의 author_id 칼럼입니다.
혹시 이 부분이 이해 안되셨다면 다시 댓글 부탁드립니다.
감사합니다.