강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

93minki のプロフィール画像
93minki

投稿した質問数

実践プロジェクトで学ぶTypeScript

ユーティリティタイプのケース - Partial

강의 내용 질문입니다.

解決済みの質問

作成

·

437

·

編集済み

2

강의에서는

type updateProduct = Partial<Product>

에서 updateProduct의 모든 속성들이 아래 처럼 옵셔널이 된다고 말씀하셨는데

id?: number;

현재는 타입스크립트 버전이 달라서 그런지

단순히 옵셔널이 되는게 아니라 undefined도 될 수 있다고 나옵니다.

id?: number | undefined;

따라서 함수에서 만약 brand 속성을 가져온다면

//강의 내용
productItem.brand.length

//현재 버전
productItem.brand?.length

이렇게 undefined가 아닐 때만 가져오도록 변경되어 있는데

 

조금 헷갈리는 개념은 Partial 유틸리티를 사용함으로 써 Product의 모든 속성을 옵셔널로 바꾼다 이지만 여기서 왜 undefined가 될 수 있는지 이해가 안됩니다.

모든 속성을 옵셔널로 가져오기 때문에 가져오는 속성은 undefined가 될 수 없는게 아닌가요?

 

추가적으로, lib.es5.d.ts 파일에서는 강의 내용과 같지만

Partial에 마우스 커서를 올렸을 때 나오는 결과는 다릅니다.

typescriptes6

回答 1

0

captain님의 프로필 이미지
captain
インストラクター

안녕하세요, 좋은 질문이네요 :) 입문 강의 내용을 착실히 들으셨군요 ㅎㅎ 질문하신 부분은 strict 옵션 때문에 그런 것 같아요. strict: false로 키시면 undefined 타입을 별도로 인식하지 않을 겁니다 :) 강의에서 안내드린 대로 TS 숙련도가 올라감에 따라서 점진적으로 strict 레벨을 상향해서 쓰시면 좋을 것 같아요.

93minki님의 프로필 이미지
93minki
質問者

답변 감사드립니다! tsconfig.json 파일에서 "strict": true, 로 변경해도 undefined가 나오는건 변하지 않고 있습니다. 다만 속성을 옵셔널로 가져오고 만약 가져오지 않을 경우 기본값을 undefined로 설정한다는 의미로 이해하고 넘어가겠습니다~

captain님의 프로필 이미지
captain
インストラクター

아 false로 하셔야해요. true로 하시면 undefined 값이 구분됩니다

93minki님의 프로필 이미지
93minki
質問者

false로 했을 때 undefined가 사라지는것 확인했습니다! 감사합니다!!

93minki のプロフィール画像
93minki

投稿した質問数

質問する