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