밀리초 단위로 시간을 가져오는 useTimeout
훅을 고려해 보겠습니다.
export const useTimeout = (timerMs: number) => {
useEffect(
() =>
setTimeout(() => {
console.log("Done!");
}, timerMs),
[timerMs],
);
};
setTimeout
의 결과를 반환하는 함수와 함께 useEffect
를 사용하고 있습니다.
하지만 오류가 발생했습니다.
Type 'Timeout' is not assignable to type 'void | Destructor'
여러분의 임무는 timeout을 정리하고 이 오류를 없애는 방법을 알아내는 것입니다.
useEffect API를 올바르게 사용하세요.
오류 메시지는 다음과 같습니다.
Type 'Timeout' is not assignable to type 'void | Destructor'
이 함수의 의미를 이해하기 위해 useEffect
함수를 통해 Destuctor
의 의미를 살펴보겠습니다.
useEffect
's TypesuseEffect
의 타입 살펴보기
useEffect
의 CMD + Click
를 사용하여 해당 타입을 탐색합니다.
이 함수는 크게 두 부분으로 나뉩니다. effect: EffectCallback
과 deps: DependencyList