typ tekstowy (w JavieString, w C++, Pascalu np. string) – typ reprezentujący cały tekst. W C jego rolę pełni tablica znaków, na którą wskazuje wskaźnik do typu znakowego – char*, zakończona znakiem o wartości zero – '\0'.
typ wskaźnikowy – oznacza wskaźnik na zmienną zadanego typu.
typ referencyjny – odmiana wskaźnika, referencja jest różnie pojmowana w poszczególnych językach.
typ wyliczeniowy – typ mogący przyjmować jedną z zadanych symbolicznych wartości, np. (czerwony, zielony, niebieski).
typ tablicowy – ciąg zmiennych zadanego typu indeksowanych liczbą naturalną z pewnego przedziału (w większości języków programowania) lub dowolnym unikalnym kluczem który może być zarówno liczbą jak i ciągiem znaków (w PHP).
typ strukturalny – zespół połączonych w jedną całość zmiennych zwanych polami struktury. Do każdego pola można się odwoływać oddzielnie.
klasa (typ obiektowy) – odmiana struktury, w której oprócz zespołu danych dodane są także procedury działających na tych danych. Zmienna typu klasy nazywa się obiektem. Pojęcie klasy spowodowało powstanie nowego paradygmatu programowania, zwanego programowaniem obiektowym i zrewolucjonizowało sposób myślenia programisty, który od tej pory patrzy na program jako na zbiór autonomicznych obiektów.
typ pusty (np. void w C i C++) – występuje np. w oznaczaniu funkcji nie zwracających żadnych wartości.
typ logiczny (np. bool w C++) – może przyjmować wartości logiczne 1 (true, t) lub 0 (false, nil).
typ bitowy reprezentujący ciąg bitów, (np. '01101'B – PL/I).
typ zbiorowy reprezentujący zbiory elementów (np. [pon, wt, sr, czw, pt] – Pascal).
Część języków programowania stosuje kontrolę typów jako sposób zabezpieczania kodu przed nieprawidłowym działaniem oraz poprawienia jego czytelności (dla języków programowania, w których nie jest konieczna jawna deklaracja typów zmiennych). Kontrola typów może mieć postać typowania dynamicznego lub typowania statycznego.