더북(TheBook)

void는 함수의 반환값을 무시하도록 하는 특수한 타입입니다. func 함수의 반환값 타입이 void인데 실제로는 3을 반환하고 있습니다. 하지만 에러는 발생하지 않습니다. 이렇듯 반환값이 void 타입이라고 해서 함수가 undefined가 아닌 다른 값을 반환하는 것을 막지는 않습니다. 하지만 value 변수처럼 void를 반환받은 값의 타입은 void가 되어버립니다. void 타입을 통해서 사용자가 이 함수의 반환값을 사용하지 못하도록 막을 수 있습니다.

다만 조심해야 할 점이 있습니다. func2처럼 반환값의 타입만 따로 표기하는 경우에는 반환값을 무시하지 않습니다. func처럼 함수 전체의 타입을 표기해야만 적용됩니다. func3의 경우도 살펴봐야 합니다. 반환값의 타입이 void와 다른 타입의 유니언이면 반환값을 무시하지 않습니다. 즉, () => void만 반환값을 무시하고, () => void | undefined처럼 다른 타입인 경우에는 무시하지 않는 것입니다.

void를 활용하여 반환값을 무시하는 특성은 콜백 함수에 주로 사용합니다.

[1, 2, 3].forEach((v) => v);
[1, 2, 3].forEach((v) => console.log(v));
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.