A Lingot a fentiek figyelembevételével gyengén típusos nyelvnek tekinthetjük, mivel a kifejezések konzisztenciája csak futásidőben dönthető el.
A Lingo az alábbi típusokat kezeli:
A logikai értékeket a TRUE és a FALSE konstansok reprezentálják, érvényes a TRUE = 1 és FALSE = 0 egyenlőség. A szimbólum (symbol) adattípus segítségével a programozó saját értékeket definiálhat és ezeket adhatja értékül pl. változóknak. A szimbólumokat a # (hash) karakter vezeti be:
A szimbólumok megadásánál az azonosítók névadási szabályai mérvadók, tehát betűvel kezdődnek és betűvel vagy számjeggyel folytatódhatnak. Hosszuk nem limitált, és az angol abc kis- és nagybetűi, illetve az ezekből mellékjelekkel és ékezetekkel képzett karakterek tekinthetők betűnek. A szimbólumok nem tartalmazhatnak szóközt és pontot, és a kis- és ngybetűk nincsenek megkülönböztetve. A szimbólumok a memóriában a sztringeknél kevesebb helyet foglalnak, azonban nem lehet őket karakterenként feldolgozni. Létezik azonban konverzió a szimbólumok és a sztringek között, ha erre lenne szükség.
A lista adattípus kétféle: lineáris és tulajdonság-lista lehet. A lineáris lista (linear list) értékeket tartalmazhat, melyeket megadáskor vesszővel választunk el, az értékeket szögletes zárójelek közé zárjuk. Ha az elemek sztringek, azokat idézőjelek közé kell írnunk:
Mint látható, a listaelemek típusa akár különböző is lehet, illetve listaelem lehet egy másik lista is.
A tulajdonság-lista (property list) minden eleme egy értékből és egy hozzá tartozó tulajdonságból áll, a tulajdonság megelőzi az értéket és egy kettőspont választja el attól. Megadása a következő módon történik:
A listák törölhetők:
A listák sorba rendezhetők, lineáris listát az értékek alapján, míg tulajdonságlistát a tulajdonságok alapján rendezhetünk. A listák bővíthetők új elemekkel, mint objektumok, ismerik a saját elemszámukat, törölhetők belőlük elemek, megkereshető egy elemük sorszáma, stb. Más nyelvekkel összehasonlítva a Lingo list adattípusa ötvözi a tömbök, mint statikus és a listák, mint dinamikus adatszerkezetek lehetőségeit.
A Lingoban a típuskonverziót eseménykezelők (~ függvények) valósítják meg. Egészet lebegőpontos számmá a float(), lebegőpontost egésszé az integer() (ez a kerekítés matematikai szabályait figyelembe véve működik), bármilyen nem sztringet sztringgé a string(), sztringet szimbólummá a symbol(), míg sztringet számmá a value() függvény konvertál.
A Lingo – más nyelvekkel ellentétben – nem definiálja a hatókör fogalmát. Ha egy objektum ismeri egy másik obejtum metódusainak nevét, akkor azokat közvetlenül meg tudja hívni bármely esetben.
A Lingoban deklarált változók alapértelmezés szerint lokálisak arra a szkriptre illetve eseménykezelőre, melyben deklaráljuk őket. Lehetőségünk van globális változók deklarásálásra, melyek a global kulcsszóval tehetünk meg:
Figyeljük meg, hogy ez valójában nem hasonlít a szokásos változó-deklarációra, mivel csak az azonosítókat soroljuk fel, típust, esetleg kezdőértéke nem. A Lingoban egy változó az első értékadástól érvényes.
Ha egy változót globálisként szeretnénk használni, akkor annak a változónak a nevét minden olyan szkriptben fel kell sorolni a global után, amelyben használni szeretnénk. Ha ezt nem tesszük meg, akkor az adott változó az adott szkript lokálisa lesz, bármennyire is globálisnak jelöltük egy másik szkriptben.
A Lingo érdekessége, hogy bármely változó típusa – beleértve a globálisokat is – futás alatt megváltozhat és megváltoztatható. Ez többek között azért valósítható meg, mert a Lingo minden típushoz azonos méretű memóriát foglal, az alábbiak szerint:
A változó címe a láthatósága alatt mindvégig változatlan marad. Ha egy változó eredeti típusa elemi volt, az új típusa összetett lett, akkor az eddigi területhez hozzákapcsolódik a szükséges további terület. Ha az eredeti típus összetett volt, az új típus elemi lett, akkor egyszerűen törlődik a kiegészítő rész. A változók területe a láthatóság alatt nem szabadul fel, ha a változó értéke nem definiált, akkor is nyolc bájtot foglal le, mert a void érték is nyolc bájton van ábrázolva.
A Lingoban háromféle élettartam definiált.