setTimeout() 반환값 정리 – 브라우저 vs Node에서 뭐가 다른지
·
FrontEnd/TypeScript
Next.js로 검색 입력창에 디바운스를 붙이다가 setTimeout 타입에서 한 번 멈칫한 적이 있다.클라이언트 컴포넌트에서 디바운스 훅을 만들고 있었고그냥 setTimeout만 쓰다가 타입이 예상과 다르게 나왔고결국 window.setTimeout을 명시적으로 쓰는 쪽으로 정리했다결론부터브라우저 환경window.setTimeout() 또는 전역 setTimeout() 모두 number를 반환한다이 값은 "타이머 ID" 역할을 한다Node.js / 서버 환경setTimeout()이 NodeJS.Timeout 객체를 반환한다@types/node가 없으면 object 정도로 추론되는 경우도 있다실무에서 주의할 점클라이언트 전용 디바운스 로직이라면 window.setTimeout을 명시해서 number를 쓰..