ReturnType<Type>
함수 Type의 반환 타입으로 구성된 타입을 생성한다.
type T0 = ReturnType<() => string>; // type T0 = string type T1 = ReturnType<(s: string) => void>; // type T1 = void declare function f1(): { a: number; b: string }; type T3 = ReturnType<typeof f1>; // type T3 = { a: number; b: string; }
setTimeout의 반환 타입을 알아내기 위해 사용하였다.
const timerId = useRef<ReturnType<typeof setTimeout>>(); // timerId.current: MutableRefObject<NodeJS.Timeout | undefined> timerId.current = setTimeout(() => { handler(e); }, ms);
아래와 같이 window를 붙여서 브라우저 환경임을 나타내는 방법도 있다.
window.setTimeout의 반환 타입은 number이다.
const timerId = useRef<number>(); // timerId.current: number | undefined timerId.current = window.setTimeout(() => { handler(e); }, ms);