-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[고학영] week12 #383
The head ref may contain hidden characters: "part2-\uACE0\uD559\uC601-week12"
[고학영] week12 #383
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
고생하셨습니다. 👍
정말 죄송합니다. 이번주까지 제가 맡은 것인줄 몰랏네요 ㅠㅠㅠㅠ 😭
- 같은 타입 선언이 여러번 이뤄진 것이 보입니다. 하나의 타입을 가지고 이용해보세요. (DRY!)
- 리액트에서 제공하는 타입들을 잘 사용해주셨네요 👍
Utility Type에 대해 학습해보시는 걸 추천합니다.
수고하셨습니다!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
build 결과물들은 내 소스 코드가 변하면 함께 변하는 것이기 때문에 git으로 등록할 필요가 없습니다.
이런 내용물들은 .gitignore에 등록해주세요.
"devDependencies": { | ||
"typescript": "^5.4.5" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typeScript 자체는 결과물에 포함이 안되죠.
dev에 잘 구분해서 적절히 추가두셨네요. 👍
|
||
function AddLinkInput() { | ||
const AddLinkInput: React.FC = () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
React.FC는 사용하지 않는 편이 좋습니다.
interface Link { | ||
created_at: string; | ||
description: string; | ||
folder_id: number; | ||
id: number; | ||
image_source: string; | ||
title: string; | ||
updated_at: number | null; | ||
url: string; | ||
[key: string]: any; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이와 같은 type들이 다른 파일에서 여럿 보이네요.
필요할때마다 유사하게 타입을 선언하기 보단 하나의 Link 타입을 가지고 재활용해주는 편이 좋습니다.
link: { | ||
created_at: string; | ||
description: string; | ||
image_source: string; | ||
title: string; | ||
url: string; | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CardList 컴포넌트의 Link type의 부분적인 형태같네요.
하나의 Link를 가지고 필요한 property만 빼서 새로운 type으로 만들어 사용할 수도 있습니다.
Omit, Partial 등의 Utility type들을 한번 사용해보세요.
interface Link { | ||
created_at: string; | ||
description: string; | ||
folder_id: number; | ||
id: number; | ||
image_source: string; | ||
title: string; | ||
updated_at: number | null; | ||
url: string; | ||
[key: string]: any; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
동일한 Link 타입이 또 있네요.
interface의 경우 말씀드렸듯이, 이름이 같으면 알아서 타입이 확장됩니다.
따라서, 어느순간 내 의도와는 다르게 타입이 변해버릴지 몰라서 굉장히 위험합니다.
하나의 타입을 재활용하던가 타입 이름을 Unique하게 만들어주세요.
요구사항
기본
심화
주요 변경사항
스크린샷
멘토에게