Typescript je JavaScript sa supermoćima - i zato ga koristi sve više programera

Typescript je JavaScript sa supermoćima – i zato ga koristi sve više developera u Srbiji

Sa Majom Jovanović, Software Developerom, razgovaramo o prednostima i manama TypeScripta.

Na spisku najpopularnijih programskih jezika na domaćem tržištu godinama unazad nalazi se JavaScript, a u poslednje vreme često se čuje i ima njegove nadgradnje – TypeScripta. To su nam potvrdili i predstavnici regruteskih agencija, pa smo rešili da iz prve ruke proverimo kolika je praktična primenljivost ovog superseta, kao i za kakve je projekte pogodan.

U tome nam je pomogla Maja Jovanović, Software Developer, koja se developmentom profesionalno bavi tri godine, iako je njeno interesovanje za programiranje počelo skoro deceniju ranije kada je iz hobija počela da uči Python. Kao neko ko u svakodnevnom radu koristi TypeScript, ona nam objašnjava njegove prednosti i mane.

TypeScript nudi pouzdaniji kod u kome se greške lakše uočavaju

TypeScript je, objašnjava nam Maja, superset (ili nadgradnja) JavaScripta, napravljen kao odgovor na probleme koji dolaze sa slabo tipiziranim jezicima kakav je JS, naročito pri radu na većim projektima. “Osnovna ideja je pouzdaniji kod u kome se greške lakše uočavaju, aplikacije su skalabilnije i lakše za održavanje“, navodi ona i dodaje:

TS je JS sa supermoćima – nudi interfejse, generike, unapređene klase, omogućava nam da deklarišemo vrste podataka… Prednosti toga su uočljivije što je aplikacija veća, ali svakako nije suvišno ni na manjim projektima. Definisanjem tipova podataka i ugovora između delova aplikacije kod se na neki način samo-dokumentuje. Za TS je zaslužan Microsoft, integrisan je ili se može integrisati u sve veće framework-e i biblioteke, ima bogat ekosistem i zajednicu.

Posebna prednost TS-a, ističe naša sagovornica, je da pronalazi greške već pri kompajliranju. Definisanjem tipova, objašnjava ona, moguće je uhvatiti greške (primer: prosleđivanje stringa umesto broja) pre samog izvršenja koda.

“Funkcije imaju potpis iz kojeg je lako videti koji su ulazni i izlazni parametri. Jedna od brojnih opcija konfiguracije TS-a koju određuje tim će sprečiti da promenljiva dobije vrednosti null ili undefined ukoliko nije eksplicitno dozvoljeno, čime se izbegava dosta česta greška pri izvršenju koda (ko se još nije susreo sa ‘Uncaught TypeError: ‘undefined’ is not a function’). Pri korišćenju TS-a može se očekivati više build/compile grešaka koje možda deluju kao da usporavaju rad ali su jednostavnije za debagovanje od runtime grešaka”, objašnjava Maja.

Dodatno, Maja nam je objasnila i koje su prednosti korišćenja TypeScripta u odnosu na druge jezike kao što su JavaScripta, Flow ili Dart:

TS nije jedini statički superset JS-a, ali je trenutno najpopularniji zbog svoje sveobuhvatnosti, alata i IDE podrške, između ostalog. TS je moguće transpajlovati u bilo koju ECMAScript verziju pa je lako integrisati ga kako u nove tako i u legacy projekte. Ne zahteva učenje celokupnog novog jezika – validan JS je i validan TS. Konfiguracija je prilagodiva potrebama projekta i nivou iskustva tima. Velika zajednica znači i veliki broj raspoloživih resursa.

Kako istraživanja pokazuju i da je TypeScript sve popularniji među developerima, našu sagovornicu pitali smo i zašto je to, po njenom mišljenju, slučaj. “Vrlo je lako preći na TS, naročito onima koji već imaju iskustva sa nekim statičkim jezikom. Naravno, za usavršavanje je potrebno vreme, ali je moguće savladati i početi sa korišćenjem osnovnih koncepata relativno brzo”, kaže ona i dodaje:

Konfigurabilnost TS-a dozvoljava da se striktnost provera prilagodi nivou iskustva tima – iskusniji timovi će možda koristiti striktniji set pravila od početnika. Postoji odlična IDE podrška i set alata koji poboljšavaju produktivnost – autocomplete, alati za refaktorisanje, hajlajtovanje grešaka…

Najveće prednosti ovog superseta imaće veliki projekti

Uz sve pozitivne aspekte koje TypeScript sa sobom nosi, zanimalo nas je i da li postoje situacije u kojima može biti manje pogodan ili kada bi mogao stvarati više posla nego koristi. Maja smatra sledeće:

Iako ne bih rekla da je suvišan, koristi TS-a su manje primetne na projektima koji nisu veliki, na njima radi mali broj developera od kojih svako zna praktično celokupanu bazu koda, ili kada radi tim izuzetno iskusan sa JS-om. Iako je pisanje TS-a sporije u odnosu na čist JS, na duže staze TS donosi lakše održavanje i debugging. Sa tehničke strane, dosta se grešaka może provući kada se TS konfiguracija ne podesi kako treba.

Maja dodaje i da na većim projektima često rade programeri sa različitom količinom iskustva, te tu TS može biti koristan na više načina. “Seniorima može koristiti da osiguraju integritet koda, juniorima da izbegnu greške vezane za tipove podataka”, objašnjava ona i dodaje da je uvođenje u projekat lakše kada postoje potpisi za svaku funkciju, interfejs i deklarisane tipove:

Ovo takođe olakšava i review proces- umesto da se bavimo greškama koje bi bez TS-a mogle završiti u pull requestu, fokus je na arhitekturi, logici i drugim high-level konceptima.

Smatram i da TS smanjuje kompleksnost koda, ako se složimo da više linija ne znači automatski veću kompleksnost. Veliki broj biblioteka je napisan u TS-u i može puno da znači ako umeš da pročešljaš kroz tipove. Nameće kontrolni flow (‘type narrowing’) i obrasce koji povećavaju čitljivost koda. JS ostavlja dosta prostora za pogrešnu interpretaciju onoga što vidimo – TS velikim delom isključuje nedoumice o podacima.

Našu sagovornicu pitali smo i kako se može usavršiti znanje ovog programskog jezika, a ona otkriva da je dokumentacija odlična i da sadrži niz dodatnih izvora – playground, aktivnu diskord zajednicu, brojne kanale gde se možemo povezati sa drugim korisnicima. Sve to, objašnjava Maja, itekako dioprinosu razvoju većih aplikacija, za šta se Typescript često koristi:

TS olakšava navigaciju unutar projekta. Ako želimo da razumemo funkciju i kako se koristi, TS nam daje njen potpis i omogućava da pronađemo reference njene upotrebe. Interfejsi nam daju autocomplete opcije tako da ne možemo slučajno da pristupimo svojstvu ili pozovemo metodu koja ne postoji.

Refaktorisanje nosi manji rizik – ako promenimo tip nekog svojstva, kompajler će nas u istom trenutku opomenuti o svim mestima u kodu koja je potrebno prilagoditi u skladu sa izmenom, umesto da se oslanjamo na tekstualnu pretragu koja može dovesti do propusta. Na nivou tima omogućava lakšu kolaboraciju, koordinaciju projekta i uvođenje novih članova tima.

Za kraj, Maja nam je objasnila i kako se TypeScript integriše sa popularnim okvirima kao što su Angular, React i Vue. “Od kako je prepoznat značaj statičkih tipova za moderan web development ekosistem, podrška za mnoge popularne biblioteke i framework-e neprestano raste. Angular je napisan u TS-u, React ima out of the box podršku za create-react-app, API za Vue 3 je napisan tako da nudi bolju podršku za interfejse i tipove…”, zaključuje naša sagovornica.


Želiš da podeliš svoje mišljenje o ovoj temi? Komentari su otvoreni na našoj Facebook i LinkedIn stranici!

Popularno

Kolumna

Po čemu srpski Zakon o digitalnoj imovini podseća na Azarov transfer iz Čelsija u Real?

Advokati Ilija Rilaković i dr Minja Đokić u zajedničkoj kolumni razjasnili su (ne)mogućnost plaćanja usluga stranih kompanija kripto valutom!

Intervju

Kompanija Proximus u Srbiji zapošljava IT stručnjake i gradi inženjering timove

Proximus je došao na tržište Srbije još 2017. godine kada je preko svoje kompanije BICS postao vlasnik Telesigna. Ovom akvizicijom, Proximus počinje da zapošljava prve Market Development specijaliste, čime mladi talenti stiču mogućnost brzog učenja i razvoja u internacionalnom okruženju.

Office Talks Podcast

LinkedIn za šahiste broji 10.000 korisnika

Gošća 188. epizode Office Talks podkasta bila je Lena Miladinović, osnivačica OutpostChess platforme namenjene umrežavanju svih ljubitelja šaha — kako profesionalaca, tako i entuzijasta.

Propustili ste

Startapi i poslovanje

Startup Genome 2024: Ekosistemi Beograda i Novog Sada vrede preko milijardu evra!

Ministarstvo nauke, tehnološkog razvoja i inovacija imalo je premijerni uvid u ovogodišnje izdanje Startup Genome istraživanja koje je obuhvatilo podatke za startap ekosisteme Beograda i Novog Sada.

Startapi i poslovanje

PolyAI Nikole Mrkšića vredi $500 miliona!

PolyAI, startap sa sedištem u Londonu koji razvija glasove generisane uz pomoć veštačke inteligencije za upotrebu u pozivnim centrima, zatvorio je krug finansiranja od 50 miliona dolara (39,4 miliona funti) dostigavši tako ukupnu vrednost od blizu 500 miliona dolara.

Startapi i poslovanje

Silicon Garden investirao u srpski OTA Sync u zaokruženoj ‘seed’ rundi ulaganja

Domaća hotel tech kompanija OTA Sync prikupila je dodatna sredstva koja će se koristiti za širenje prodajnog tima na globalno tržište. 

Startapi i poslovanje

DSI investirao u Veli — kripto platformu za finansijske savetnike

Najnovija investicija DSI mreže poslovnih anđela otišla je startapu Veli, iza kojeg stoje Stevan Radonjanin i Marko Selaković. Ova platforma omogućava profesionalcima da investiraju u kriptovalute za svoje klijente i upravljaju njihovim portfeljima.

Office Talks Podcast

Trickest: Etičko hakovanje i ofanzivni cybersecurity

U 190. epizodi Office Talks podkasta razgovarali smo sa Nenadom Zarićem i Mihailom Tomićem, osnivačima startapa Trickest, koji su nam govorili o njegovom nastanku, cybersecurity industriji i etičkom hakovanju.

Startapi i poslovanje

Američki Autodesk akvizirao je novosadski Wonder Dynamics!

Wonder Dynamics akviziran je od strane američkog giganta za 3D animaciju, koji je ovaj potez objavio u jučerašnjem saopštenju na svom zvaničnom sajtu.