Az Inform 7-ben a típusok, mint sok minden más, kissé el vannak rejtve a programozó elől.
A típus kulcsszava a kind. Ebből lehet konkrét "objektumokat" létrehozni. Ezeknek az objektumoknak vannak property-jei. A property-knek lehet alapértelmezett értéke, ezt a kind definícójában lehet megadni. Felüldefiniálás a konkrét objektum létrehozásakor lehetséges.
Létezik olyan típus is amit más programnyelvekben enumeration-nak hívunk.
Az elemi típusok a some text és number. A some text a string-nek felel meg, a number az integer-nek. A some text értékeket kettős idézőjel közé kell tenni. Ez a leggyakrabban használt típus, hiszen ez tárolja az összes olyan szöveget, amit a gép a játékosnak információ gyanánt kiír.
Lehet listát létrehozni és ezen a listán egy foreach ciklussal végigmenni. Ezeknek az elemeknek azonos típusúaknak kell lenniük. A hasznos helyettesítés: "[list of leírás]" kiírja mondatként azokat a dolgokat, amelyek megfelelnek a leírásnak.
Ha nincs ilyen dolog akkor 'nothing' lesz kiírva.
Nem mindegy, hogy a lista hány elemet tartalmaz. Ha csak egy elemet, akkor más névelő kell (is), mintha több elemet (are). Ezt azonban előre nem lehet tudni, de az alábbi konstrukció megoldja a problémát.
Nincs automatikus konverzió. Ha egy változót number típusúra deklaráltunk és string értéket akarunk neki adni (vagy fordítva), akkor fordítási hibát kapunk. Érdekesség, hogy egy number típust egyszerűen ki lehet írni szavakkal:
Az [s] a turn után azért kell, hogy "one turn" és "two turns" legyen kiíratva a megfelelő időben.
Konstansok alakja a következő:
Lokális változókat a let kulcsszóval vezethetünk be. Változókat nem lehet akárhol deklarálni, például akciókon belül lehet.
A típust nem kell megadni, azt a kötelezően megadott kezdő értékből vezeti le a fordító.
Ezek a más nyelvekben megszokott osztályoknak felelnek meg. Van öröklődés és kompozíció is. A kiegészítések majdnem mindig tartalmaznak újabb típusokat. Az alább látható hierarchia tartalmazza az alap kind-okat.
Új kind öröklődéssel egyszerűen létrehozható.