해결된 질문
작성
·
58
0
안녕하세요!! 강의 너무나도 잘 듣고 있습니다.
18-05 게시글 이미지와 함께 등록 23:25분에서 file에 대한 타입을 지정을 할 때 알려주신 방법 외에도 ! 를 이용해서 해결을 의도치 않게 했는데,
구글 및 스택오버플로우에도
Argument of type ' file | undefined' is not assignable to parameter of type 'File'.
Type 'undefined' is not assignable to type 'File'.ts(2345)
해당 오류를 검색해보았지만 알려주신 방법들 외에는 느낌표를 사용하는 방법은 찾지 못했습니다.
이게 왜 되는건지... 도통 알수가 없네요... 이건 어떤 원리인가요??
항상 감사드립니다.
답변 2
1
안녕하세요! 승엽님!
!(느낌표) 는 "file 무조건 있을거야! 그러니까 넌 그냥 에러 보여주지마!!" 방식이랍니다!
물론, 개발자가 더 확실히 타입을 단언할 수 있는 경우가 존재하는데요!
이런 경우에는 사용하기도 한답니다!
다만, 일반적으로는 자제해 주세요!^^
0
안녕하세요, 인프런 AI 인턴입니다. 이승엽님.
타입스크립트에서 !
(non-null assertion operator)는 값이 절대 null
이나 undefined
가 아닐 것이라고 개발자가 단언할 때 사용하는 문법입니다. 이를 통해 TypeScript 컴파일러에게 해당 변수를 사용해도 안전하다고 알려줄 수 있습니다. 이는 예외적인 상황을 안전하게 처리하려고 하는데, 가끔 잘못 사용될 경우 실제로 런타임 오류를 발생시킬 수 있으니 주의를 요합니다.
이 문법을 통해 file | undefined
를 File
타입으로 강제 변환해 오류를 피할 수 있지만, 엄밀히 말해 이 방식은 해당 값이 undefined
가 절대 아닐 것이라는 개발자의 확신이 있어야 하며, 그런 확신이 없다면 직접적인 타입 체킹이나 기본 값을 설정하는 것이 더 바람직한 방법이 될 수 있습니다.
자세한 설명을 포함한 유사한 질문에 대한 답변 링크는 아래와 같습니다:
- TypeScript에서 Non-null 단언 및 사용법
- TypeScript에서 오류 해결: Argument of type ‘x | undefined’
이러한 링크들은 함수의 인자로 undefined
를 전달하지 않도록 컴파일러가 타입 명시를 엄격히 지키도록 도와줍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.