StudyForYou / ouahhan-typescript-with-react

우아한 타입스크립트 with 리액트 스터디 레포 🧵
4 stars 0 forks source link

#19 [5장_3] 제시된 코드에서 타입오류가 발생한 이유를 설명하고, 유틸리티 타입을 통한 해결 방법을 알려주세요! #31

Closed hyeyoonS closed 2 months ago

hyeyoonS commented 2 months ago

❓문제

제시된 코드에서 타입 오류가 발생한 이유를 설명하고, 유틸리티 타입을 통한 해결 방법을 알려주세요!


interface Post {
  title: string;
  tags: string[];
  content: string;
  thumbnailURL?: string;
}

(...)

const noTitlePost: Post = { // :x:
  content: "",
  tags: [],
  thumbnailURL: "",
};

🎯답변

오류 발생 이유

해결 방법

const noTitlePost: Omit<Post, "title"> = {
  content: "",
  tags: [],
  thumbnailURL: "",
};

Omit

drizzle96 commented 2 months ago

변수의 이름처럼 Post에서 title 프로퍼티가 제외된 객체 타입을 만들어야 하며 Omit를 사용하여 이를 처리합니다.

const noTitlePost: Omit<Post, 'title'> = {
  content: '',
  tags: [],
  thumbnailURL: '',
}
qooktree1 commented 2 months ago

const noTitlePost: Pick<Post, 'content' | 'tags' | 'thumbnailURL'> = { content: "", tags: [], thumbnailURL: "", };