Az SDL erősen típusos nyelv, azaz minden változónak meg kell adnunk a típusát, és az adott változón csak a típusának megfelelő műveleteket hajthatjuk végre. Egy SDL-es típus az alábbiakból áll:
Az alább felsorolt beépített típusok közül csak azokhoz került magyarázat, amelyek valamilyen szempontból nem a hagyományos nyelvekből megszokottak:
A C nyelvek define-jához hasonló, fordítási időben behelyettesített szinonima. Segítségével beszédes neveket lehet adni értékeknek, ezzel is javítva a kód olvashatóságát.
SYNONYM Pi Real = 3.14159;
A NewType kulcsszóval új diszkrét típust, pl. enumot vezethetünk be. Az új típuson automatikusan értelmezettek az „egyenlő”, a „nem egyenlő” és az „értékadó” operátorok. A típusok összehasonlításánál erős típusellenőrzést alkalmaz a nyelv.
NEWTYPE WeekDay LITERALS Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday; ENDNEWTYPE WeekDay;
A Syntype kulcsszóval egy új résztípust hozhatunk létre. Ezen új típus kompatibilis az alaptípusával, ám segítségével megszorításokat tehetünk az alaptípus értékhalmazára, vagy épp alapértelmezett értéket adhatunk az új típusnak.
SYNTYPE RestrictedReal = Real DEFAULT 42 CONSTANTS <-7, 11:34, 42, >=44 ENDSYNTYPE RestrictedReal;
A fenti típus alaptípusa Real, a lehetséges értékei a -7-nél kisebb számok, a 11 és 34 közti számok, a 42, valamint a 44-nél nagyobb számok. Ezen felül a típus alapértelmezett értéke 42.
A SDL-es tömbök deklarálása az ADA-hoz hasonló módon történik. Két típust kell megadni, az index típusát és az értékek típusát. Ebből kifolyólag csak azonos típusú elemeket tárolhat.
NEWTYPE CharacterArray ARRAY(Natural, Character) ENDNEWTYPE CharacterArray;
Az SDL struktúrái a C-ben megszokotthoz nagyon hasonlóak.
NEWTYPE MyStruct STRUCT Field1 Integer; Field2, Field3 Char; ENDNEWTYPE MyStruct;
A kódon belül deklarált típusokon felül lehetőség van külső, például XML fájlokból generált .pr fájlokból típusokat include-olni.