Das Schlüsselwort typedef dient zum Deklarieren eines Bezeichners als Aliasname für einen bereits vorhandenen Typ. Wie bei allen D-Typ-Deklarationen wird das Schlüsselwort typedef außerhalb der Prüfpunktklauseln gesetzt. Die Deklarationen haben die folgende Form:
typedef vorhandener_Typ neuer_Typ ;
dabei ist vorhandener_Typ eine beliebige Typ-Deklaration und neuer_Typ ist ein Bezeichner, der als Aliasname für diesen Typ verwendet werden soll. So wird beispielsweise die Deklaration:
typedef unsigned char uint8_t;
intern vom D-Compiler für die Erzeugung des Typ-Aliasnamens uint8_t verwendet. Typ-Aliasnamen können überall dort eingesetzt werden, wo ein normaler Typ, wie zum Beispiel der Typ eines Variablen- oder assoziativen Vektorwerts oder einer Tupel-Komponente, verwendet werden kann. Außerdem lässt sich typedef mit komplexeren Deklarationen wie der Definition einer neuen Struktur (struct) kombinieren:
typedef struct foo { int x; int y; } foo_t;
In diesem Beispiel wird struct foo als derselbe Typ seines Aliasnamens, foo_t, definiert. In den C-System-Headern von Solaris wird ein typedef-Aliasname häufig durch den Zusatz _t gekennzeichnet.