프로그래머스 데브코스 5기 TIL 78 - Error: listen EACCES: permission denied ::1:573, TS Non-nullable operation

김영현·2024년 3월 9일
0

TIL

목록 보기
89/129

yarn run dev후 에러(Error: listen EACCES: permission denied)

어느날 컴퓨터를 켜고 VSCODE에서 yarn run dev로 데브서버를 구동했는데, 이런 오류가 나왔다.

파일을 건든적은 없다. 왜 그럴까? 한번 찾아보았다!

해결법

파워쉘 관리자 권한 실행 후
net stop winnat 으로 winnat을 종료시킨뒤 net start winnat로 다시실행.
5173포트가 예약되어있어서 그렇다.
보통 윈도우 업데이트때문인 경우가 많음!


Typescript Non-nullable(nullish한 값이 아니라고 명시적으로 알려주기)

서버와 데이터를 웹소켓으로 주고 받는 상황.
첫 응답시에 quetions프로퍼티가 들어오고 이후에는 들어오지 않는다.
이때 quetions는 옵셔널 타입이 된다.
첫 응답시에 들어온 quetionsuseRef를 이용하여 저장하기로 함.
그리고 응답이 있을때만 컴포넌트를 렌더링 하기에 첫 렌더링시 quetions는 무조건 존재한다.
하지만, TS컴파일러는 이를 모름.

이때 어떻게 할까 방법을 찾아보다 Non-nullalbe이라는 타입을 찾았다.

undefinednull이 아닌 값으로 취급한다.

const GameSentence = ({
  ingameRoomRes,
  publishIngame,
  userId,
}: GameSentenceProps) => {
  const sentencList = useRef<I_Question[]>(ingameRoomRes.questions!);
  ....
}

사용법은 위와 같다. null, undefined가 아닌게 확실 한 값 뒤에 느낌표(!)를 붙임.
as키워드와 비슷하게 컴파일러에게 개발자가 명시적으로알려주는 것이라 안전하진 않은 것 같다.

profile
모르는 것을 모른다고 하기

0개의 댓글