강의 내용 질문입니다.
강의에서는
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에 마우스 커서를 올렸을 때 나오는 결과는 다릅니다.

Answer 1
0
안녕하세요, 좋은 질문이네요 :) 입문 강의 내용을 착실히 들으셨군요 ㅎㅎ 질문하신 부분은 strict 옵션 때문에 그런 것 같아요. strict: false로 키시면 undefined 타입을 별도로 인식하지 않을 겁니다 :) 강의에서 안내드린 대로 TS 숙련도가 올라감에 따라서 점진적으로 strict 레벨을 상향해서 쓰시면 좋을 것 같아요.
0
답변 감사드립니다! tsconfig.json 파일에서 "strict": true, 로 변경해도 undefined가 나오는건 변하지 않고 있습니다. 다만 속성을 옵셔널로 가져오고 만약 가져오지 않을 경우 기본값을 undefined로 설정한다는 의미로 이해하고 넘어가겠습니다~
-
0
139
1
[오류문의] import 에러
0
273
1
api가 중단된 건에 대하여..
1
381
2
프로젝트 완성본 github에 어디있나요?
1
350
2
https://api.covid19api.com/summary에 있는 원격 리소스를 차단
3
788
2
d.ts 컴파일 시 에러 질문 드립니다.
1
622
2
chartjs 타입시.. 직접 declare module chart.js로 하게 되면 내부의 구조를 모를 것 같은데요
1
598
2
COVID19 API 미작동(404) 질문
1
829
2
innerText부분 오류 문의.
1
684
2
Total Recovered가 화면에 0으로 나옵니다.
1
406
1
요즘 바벨 사용 여부가 궁금합니다.
1
501
1
프로젝트 내 특정 파일만 Typing
1
573
1
소스질문
1
605
1
추후 강의에 관한 질문
2
404
1
rootdir, include 차이가 궁금합니다
1
678
1
Uncaught ReferenceError: exports is not defined 에러 해결
1
1834
1
function $(selector) 관련 질문 드립니다.
1
313
1
Uncaught ReferenceError: exports is not defined
1
471
1
웹팩 에러 문의
1
852
2
innerHTML optional 체이닝
2
1924
1
화살표 함수 문법 소개 글 링크가 잘못되어 있습니다.
1
238
1
실전 적용 관련 질문 입니다.
1
305
1
모듈 알리아스(as) 질문 드립니다.
1
383
1
프리티어 안되시는 분들
1
393
1

