void у функції
Що означає void у функції
Тип void у функції означає:
«Ця функція нічого не повертає (результат не використовується)».
Тобто - функція виконує якусь дію (логує, змінює стан, викликає побічний ефект),
але не повертає значення через return.
Приклад 1. Проста функція з void
function logMessage(message: string): void {
console.log("Повідомлення:", message);
}- Функція нічого не повертає, лише виводить у консоль.
- Якщо ти спробуєш повернути щось - TypeScript покаже помилку:
function logMessage(message: string): void {
return "Done"; // Помилка: функція з типом void не повинна повертати значення
}Приклад 2. Фактично повертається undefined, але тип - void
Функції в JavaScript, які не мають return,
завжди повертають undefined, але з погляду типів у TS - це void.
function sayHello(): void {
console.log("Привіт!");
}
const result = sayHello();
console.log(result); // undefined
void-> «не повертає нічого значимого», а не «зовсім нічого не повертає».
Приклад 3. Функції зворотного виклику (колбеки) з void
Тип void часто використовується в callback-функціях,
де результат виклику не має сенсу.
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 це ігнорує:
forEach([1, 2, 3], (n) => n * 2); // ок, return ігноруєтьсяПриклад 4. Асинхронна функція з void
Іноді void використовують, щоб явно показати:
результат промису не використовується, і ми не чекаємо на його завершення.
async function saveData(): Promise<void> {
console.log("Зберігаємо дані...");
}або при виклику:
function startProcess(): void {
void saveData(); // спеціально кажемо TypeScript: "не чекай результату"
}Тут
voidперед викликом - оператор, не тип (він відкидає значення). Це поширений патерн у TS при виклику async-функцій безawait.
Приклад 5. Відмінність void від undefined
| Тип | Опис | Приклад |
|---|---|---|
void | «нічого не повертає (не використовується)» | function log(): void { ... } |
undefined | «явно повертає значення undefined» | function empty(): undefined { return undefined; } |
function a(): void {}
function b(): undefined { return undefined; }
const x = a(); // x має тип void
const y = b(); // y має тип undefined
voidіundefinedблизькі, але не взаємозамінні.void- це обіцянка «нічого не повертати», аundefined- реальне значення.
Приклад 6. Використання void в інтерфейсах
interface ButtonProps {
label: string;
onClick: () => void;
}
const button: ButtonProps = {
label: "Натисни",
onClick: () => {
console.log("Кнопку натиснуто!");
},
};
onClickмає тип() => void, тому що обробник події не повертає результат.
Підсумок
| Властивість | Значення |
|---|---|
| Де використовується | Тип, що повертається функцією |
| Що означає | "Функція нічого не повертає" |
| Фактична поведінка в JS | Повертає undefined, але це ігнорується |
| Застосування | Колбеки, обробники подій, логери, поб |
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.