Null 값 유형 확인
P粉896751037
P粉896751037 2023-08-03 11:34:29
0
1
533
<p>방금 서비스에 메서드를 작성했지만 if 문 블록에서 null 검사를 수행했는데도 null 값을 반환할 수 있다는 유형 힌트가 발생하는 문제가 발생했습니다. </p> <pre class="brush:php;toolbar:false;">public async getUserById(id: string): Promise<UserEntity> const user = this.userRepository.getById(id); // <UserEntity null> if (!user) { // null 검사 throw new NotFoundUser(`사용자를 찾을 수 없음`); } // 'UserEntity | null' 유형은 'UserEntity' 유형에 할당할 수 없습니다. // 'null' 유형은 'UserEntity' 유형에 할당할 수 없습니다. 복귀 사용자; }</pre> <p>사용자 변수가 비어 있으면 예외를 발생시키고 그렇지 않으면 UserEntity를 반환하고 싶습니다. <br /><br />거기에 느낌표 2개를 넣으면 문제가 해결됩니다.


<pre class="brush:php;toolbar:false;">if (!!user) { // null 확인 throw new NotFoundUser(`사용자를 찾을 수 없음`); }</pre> <p>하지만 콘솔에 !!null을 입력하면 false가 반환되므로 이 경우 예외가 발생하는 상황은 절대 발생하지 않습니다. 왜 이런 문제가 발생합니까? </p>
P粉896751037
P粉896751037

모든 응답(1)
P粉267791326

!!는 Boolean과 유사하므로 이 코드 줄에서는 Boolean(null)과 유사한 작업을 수행하므로 false가 됩니다. 왜냐하면 boolean에서는 null이 false이기 때문입니다. user === null을 사용하여 null인지 확인할 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿