Pusty typ danych () – typ danych, którego zmienna niesie zerową informację, czyli, zgodnie z teorią informacji, matematyczna klasa wszystkich wartości zmiennych tego typu zawiera dokładnie jeden element. Wprowadzenie takiego typu do systemu typów języka programowania umożliwia pewne rodzaje uogólnień - nie trzeba rozróżniać funkcji, które zwracają wartość, od tych, które jej nie zwracają (czyli zwracają wartość typu pustego), oraz funkcji, które pobierają jakiś argument, od tych, które tego nie robią.
Typ pusty stosowany jest głównie do: Wskazania, że funkcja nie zwraca wyniku (języki C, C++). Wskazania, że funkcja nie pobiera żadnych argumentów (konieczne w języku C, opcjonalne w C++) Definiowania wskaźników na dane nieokreślonego typu (języki C i C++).
Typy puste w językach programowania C, C++, Java, JavaScript, C# — typ (void) języki ML —- unit
Przykłady
Definiowanie funkcji niezwracającej wyniku void wypisz_liczbe(int liczba) { printf("%d\n", liczba); }
W przykładzie tym (napisanym w języku C lub C++) słowo kluczowe void wskazuje, że funkcja wypisz_liczbe nie zwraca wartości.
Definiowanie funkcji bezargumentowych int powitanie(void) { printf("Witaj!\n"); return 0; }
W przykładzie tym (napisanym w języku C) słowo kluczowe void wskazuje, że funkcja powitanie nie pobiera żadnych argumentów.