Skip to main content

void у функції

Що означає void у функції

Тип void у функції означає:

«Ця функція нічого не повертає (результат не використовується)».

Тобто - функція виконує якусь дію (логує, змінює стан, викликає побічний ефект), але не повертає значення через return.


Приклад 1. Проста функція з void

javascript
function logMessage(message: string): void { console.log("Повідомлення:", message); }
  • Функція нічого не повертає, лише виводить у консоль.
  • Якщо ти спробуєш повернути щось - TypeScript покаже помилку:
javascript
function logMessage(message: string): void { return "Done"; // Помилка: функція з типом void не повинна повертати значення }

Приклад 2. Фактично повертається undefined, але тип - void

Функції в JavaScript, які не мають return, завжди повертають undefined, але з погляду типів у TS - це void.

javascript
function sayHello(): void { console.log("Привіт!"); } const result = sayHello(); console.log(result); // undefined

void -> «не повертає нічого значимого», а не «зовсім нічого не повертає».


Приклад 3. Функції зворотного виклику (колбеки) з void

Тип void часто використовується в callback-функціях, де результат виклику не має сенсу.

javascript
function forEach<T>(array: T[], callback: (item: T) => void): void { for (const item of array) { callback(item); } } forEach([1, 2, 3], (n) => console.log(n * 2));
  • callback має тип (item: T) => void - він викликається, але його результат не використовується.
  • Навіть якщо всередині callback щось повертається, TypeScript це ігнорує:
javascript
forEach([1, 2, 3], (n) => n * 2); // ок, return ігнорується

Приклад 4. Асинхронна функція з void

Іноді void використовують, щоб явно показати: результат промису не використовується, і ми не чекаємо на його завершення.

javascript
async function saveData(): Promise<void> { console.log("Зберігаємо дані..."); }

або при виклику:

javascript
function startProcess(): void { void saveData(); // спеціально кажемо TypeScript: "не чекай результату" }

Тут void перед викликом - оператор, не тип (він відкидає значення). Це поширений патерн у TS при виклику async-функцій без await.


Приклад 5. Відмінність void від undefined

ТипОписПриклад
void«нічого не повертає (не використовується)»function log(): void { ... }
undefined«явно повертає значення undefined»function empty(): undefined { return undefined; }
javascript
function a(): void {} function b(): undefined { return undefined; } const x = a(); // x має тип void const y = b(); // y має тип undefined

void і undefined близькі, але не взаємозамінні. void - це обіцянка «нічого не повертати», а undefined - реальне значення.


Приклад 6. Використання void в інтерфейсах

javascript
interface ButtonProps { label: string; onClick: () => void; } const button: ButtonProps = { label: "Натисни", onClick: () => { console.log("Кнопку натиснуто!"); }, };

onClick має тип () => void, тому що обробник події не повертає результат.


Підсумок

ВластивістьЗначення
Де використовуєтьсяТип, що повертається функцією
Що означає"Функція нічого не повертає"
Фактична поведінка в JSПовертає undefined, але це ігнорується
ЗастосуванняКолбеки, обробники подій, логери, поб

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.