Skip to main content

Що означає тип void?

Що означає тип void у TypeScript

Тип void у TypeScript означає:

«відсутність значення, що повертається».

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


Основне призначення

Тип void найчастіше використовується в сигнатурах функцій - щоб вказати, що функція не повертає значення.

javascript
function logMessage(): void { console.log("Message to console"); }

Тут logMessage() виконує дію, але нічого не повертає -> void.


Як оголосити функцію з void

javascript
function greet(name: string): void { console.log(`Hello, ${name}!`); }

При виклику:

javascript
const result = greet("Tim"); console.log(result); // undefined

Хоча функція має тип void, при виклику вона фактично повертає undefined. Але TypeScript забороняє використовувати це значення - він вважає, що функція не повинна нічого повертати.


Приклад з колбеками

Тип void часто використовується в обробниках подій і колбеках, коли значення, що повертається, не має сенсу.

javascript
type Callback = () => void; function onClick(callback: Callback) { callback(); } onClick(() => { console.log("Button click"); });

Різниця між void і undefined

ТипОписКоли використовується
undefinedконкретне значення (не визначено)змінні без значення
voidвідсутність результату, що повертаєтьсяфункції без return

Приклад:

javascript
let a: undefined = undefined; // значення існує function doNothing(): void {} // функція нічого не повертає

Важливі особливості

  1. Не можна присвоїти значення змінній типу void:
javascript
let nothing: void; nothing = undefined; // OK nothing = null; // Тільки якщо вимкнено прапорець strictNullChecks nothing = 42; // Помилка
  1. Функція з void може мати побічні ефекти, наприклад - логувати, надсилати запит, змінювати стан тощо.
javascript
function sendMessage(): void { console.log("Message sent"); }
  1. TypeScript відрізняє void від never:
  • void -> функція завершується, але нічого не повертає;
  • never -> функція взагалі не завершується (помилка або нескінченний цикл).
javascript
function log(): void { console.log("ok"); // завершується } function crash(): never { throw new Error("error!"); // не завершується }

Підсумок

ВластивістьОпис
ТипПримітивний службовий
Значенняundefined (неявно)
Де використовуєтьсяТип, що повертається функціями
ПоведінкаВказує, що функція нічого не повертає
Відмінність від nevervoid - функція завершується, never - ні

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

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

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