Тхе Динамиц Дуо фор Веб Дев

TypeScript se etablirao kao jedan od najtraženijih programskih jezika u modernim organizacijama.

TypeScript je kompilirani, strogo tipiziran nadskup JavaScripta, izgrađen na temeljima JavaScript jezika. Ovaj statički tipizirani jezik, razvijen i održavan od strane Microsofta, podržava objektno orijentirane koncepte, baš kao i njegov podskup, JavaScript.

Ovaj programski jezik otvorenog koda ima širok spektar primena, uključujući izradu veb, velikih i mobilnih aplikacija. TypeScript je pogodan za frontend i backend razvoj. Takođe, raspolaže raznim frameworkovima i bibliotekama koji pojednostavljuju razvoj i proširuju mogućnosti njegove upotrebe.

Zašto koristiti TypeScript uz Node.js? Ovaj tekst objašnjava zašto se TypeScript smatra superiornijim u odnosu na JavaScript, kako ga instalirati pomoću Node.js, kako ga konfigurirati i kako kreirati jednostavan program koristeći TypeScript i Node.js.

TypeScript sa Node.js: Prednosti

  • Opcionalno statičko tipiziranje: JavaScript je dinamički tipiziran, što znači da se tip podataka varijable određuje tokom izvršavanja, a ne tokom kompilacije. TypeScript, s druge strane, nudi opcionalno statičko tipiziranje, što znači da kada jednom deklarišete varijablu, ona neće menjati svoj tip i prihvatati će samo definisane vrednosti.
  • Predvidljivost: Kada radite sa TypeScriptom, postoji sigurnost da će sve što definišete ostati nepromenjeno. Na primer, ako deklarišete varijablu kao boolean, ona se nikada neće transformisati u string. Kao programer, možete biti sigurni da će vaše funkcije zadržati svoj integritet.
  • Rano otkrivanje grešaka: TypeScript rano detektuje većinu grešaka u tipovima, čime se smanjuje verovatnoća njihovog pojavljivanja u produkciji. Ovo štedi vreme inženjerima koje bi inače potrošili na testiranje koda u kasnijim fazama razvoja.
  • Podrška u većini IDE-ova: TypeScript je kompatibilan sa većinom integrisanih razvojnih okruženja (IDE). Većina ovih IDE-ova pruža funkcije automatskog dovršavanja koda i isticanja sintakse. U ovom članku koristićemo Visual Studio Code, još jedan Microsoftov proizvod.
  • Lakše refaktorisanje koda: Možete ažurirati ili refaktorisati svoju TypeScript aplikaciju bez straha od promene njenog ponašanja. Zahvaljujući alatima za navigaciju i IDE-ovima koji razumeju vaš kod, refaktorisanje kodne baze je znatno olakšano.
  • Korišćenje postojećih paketa: Ne morate sve stvarati od nule; možete koristiti postojeće NPM pakete sa TypeScriptom. Ovaj jezik ima i jaku zajednicu koja kreira i održava definicije tipova za popularne pakete.

Kako koristiti TypeScript sa Node.js

Iako TypeScript pruža ove prednosti, savremeni pretraživači ne mogu direktno interpretirati njegov kod. Zato se TypeScript kod mora prvo transpilovati u JavaScript kod kako bi se mogao izvršiti u pretraživačima. Rezultujući kod ima istu funkcionalnost kao originalni TypeScript kod, uz dodatne mogućnosti koje nisu dostupne u JavaScriptu.

Preduslovi

  • Node.js: Node je višenamensko okruženje za izvršavanje koje omogućava pokretanje JavaScript koda izvan pretraživača. Možete koristiti sledeću naredbu da proverite da li je Node instaliran na vašem sistemu;

node -v

U suprotnom, Node.js možete preuzeti sa zvanične internet stranice. Nakon instalacije, ponovo pokrenite gornju naredbu da proverite da li je konfiguracija uspešna.

  • Node Package Manager: Možete koristiti NPM ili Yarn. NPM se instalira automatski kada instalirate Node.js. U ovom tekstu, koristićemo NPM kao upravitelja paketima. Proverite njegovu verziju pomoću sledeće naredbe;

npm -v

Instaliranje TypeScripta sa Node.js

Korak 1: Postavite folder projekta

Započnimo kreiranjem fascikle projekta za TypeScript projekat. Naziv foldera može biti po vašem izboru. Koristite naredbe ispod za početak;

mkdir typescript-node

cd typescript-node

Korak 2: Pokrenite projekat

Inicijalizujte svoj projekat koristeći NPM sa sledećom naredbom;

npm init -y

Gornja komanda će stvoriti package.json datoteku. Oznaka -y u komandi govori NPM-u da koristi podrazumevane vrednosti. Generisana datoteka će imati sličan izgled.

{
  "name": "typescript-node",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Konfigurisanje TypeScripta sa Node.js

Korak 1: Instalirajte TypeScript prevodilac

Sada možete instalirati TypeScript kompilator u vaš projekat. Pokrenite sledeću naredbu;

npm install --save-dev typescript

Izlaz na vašoj komandnoj liniji će izgledati slično ovome;

added 1 package, and audited 2 packages in 26s
found 0 vulnerabilities

Napomena: Gore navedeni pristup instalira TypeScript lokalno u folder projekta na kojem radite. Možete instalirati TypeScript globalno na vaš sistem, tako da ga ne morate instalirati svaki put kada radite na projektu. Upotrebite ovu naredbu za globalnu instalaciju TypeScripta;

npm install -g typescript

Proverite da li je TypeScript instaliran pomoću ove naredbe;

tsc -v

Korak 2: Dodajte ambijentalne Node.js tipove za TypeScript

TypeScript ima različite tipove, kao što su implicitni, eksplicitni i ambijentalni. Ambiijentalni tipovi se uvek dodaju u globalni opseg izvršavanja. Koristite naredbu ispod za dodavanje ambijentalnih tipova;

npm install @types/node --save-dev

Korak 3: Kreirajte datoteku tsconfig.json

Ovo je konfiguraciona datoteka koja specificira sve opcije prevođenja TypeScripta. Pokrenite sledeću naredbu koja dolazi sa nekoliko definisanih opcija kompajliranja;

npx tsc --init --rootDir src --outDir build 
--esModuleInterop --resolveJsonModule --lib es6 
--module commonjs --allowJs true --noImplicitAny true

Ovo će biti izlaz na terminalu;

Biće generisana datoteka tsconfig.json, koja sadrži podrazumevane vrednosti i komentare.

Ovo smo konfigurisali:

  • rootDir je lokacija odakle će TypeScript preuzimati naš kod. Uputili smo ga na /src folder gde ćemo pisati naš kod.
  • outDir folder definiše gde će se smeštati kompilirani kod. Konfigurisan je da se čuva u folderu build/.

Korišćenje TypeScripta sa Node.js

Korak 1: Kreirajte src folder i index.ts datoteku

Sada imamo osnovnu konfiguraciju. Možemo kreirati jednostavnu TypeScript aplikaciju i kompilirati je. Ekstenzija datoteke za TypeScript datoteku je .ts. Pokrenite naredbe ispod dok ste u folderu koji smo napravili u prethodnim koracima;

mkdir src

touch src/index.ts

Korak 2: Dodajte kod u TypeScript datoteku (index.ts)

Možete početi sa nečim jednostavnim kao što je;

console.log('Hello world!')

Korak 3: Prevedite TypeScript kod u JavaScript kod

Pokrenite naredbu ispod;

npx tsc

Možete proveriti folder za izradu (build/index.js) i primetiti da je index.js generisan sa sledećim sadržajem;

TypeScript je preveden u JavaScript kod.

Korak 4: Pokrenite prevedeni JavaScript kod

Zapamtite da TypeScript kod ne može biti izvršen u pretraživačima. Zato ćemo pokrenuti kod u index.js koji se nalazi u folderu za izradu. Izvršite sledeću naredbu;

node build/index.js

Ovo će biti rezultat;

Korak 5: Konfigurišite TypeScript za automatsko prevođenje u JavaScript kod

Ručno prevođenje TypeScript koda svaki put kada promenite svoje TypeScript datoteke može biti gubljenje vremena. Možete instalirati ts-node (koji pokreće TypeScript kod direktno bez čekanja da bude preveden) i nodemon (koji prati izmene u vašem kodu i automatski ponovo pokreće server).

Pokrenite naredbu ispod;

npm install --save-dev ts-node nodemon

Zatim možete otići do datoteke package.json i dodati sledeću skriptu;

"scripts": {
  "start": "ts-node ./src/index.ts"
}

Možemo upotrebiti novi blok koda radi demonstracije;

function sum (num1:number, num2:number, num3:number){
  return num1 + num2 +num3;
}
console.log(sum(10,15,30))

Izbrišite index.js datoteku (/build/index.js) i pokrenite npm start.

Vaš izlaz će biti sličan ovome;

Konfigurisanje TypeScript Lintinga sa ESLint-om

Korak 1: Instalirajte ESLint

Linting može biti koristan ako želite da održite doslednost koda i uhvatite greške pre izvršavanja. Instalirajte ESLint pomoću ove naredbe;

npm install --save-dev eslint

Korak 2: Inicijalizujte ESLint

Možete inicijalizovati ESLint koristeći ovu naredbu;

npx eslint --init

Proces inicijalizacije će vas voditi kroz nekoliko koraka. Koristite sliku ekrana ispod kao vodič;

Kada se proces završi, primetićete datoteku pod imenom .eslintrc.js sa sadržajem sličnim ovome;

module.exports = {
  env: {
    browser: true,
    es2021: true
  },
  extends: 'standard-with-typescript',
  overrides: [
  ],
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module'
  },
  rules: {
  }
}

Korak 3: Pokrenite ESLint

Pokrenite naredbu ispod da proverite i lintujete sve datoteke sa .ts ekstenzijom;

npx eslint . --ext .ts

Korak 4: Ažurirajte package.json

Dodajte lint skriptu ovoj datoteci za automatski linting.

"scripts": {
   "lint": "eslint . --ext .ts",
  },

TypeScript sa Node.js: Najbolje prakse

  • Održavajte TypeScript ažurnim: Programeri TypeScripta redovno objavljuju nove verzije. Uverite se da imate instaliranu najnoviju verziju na vašem sistemu/folderu projekta kako biste iskoristili nove funkcije i ispravke grešaka.
  • Omogućite strogi režim: Možete uhvatiti česte programske greške tokom kompilacije ako omogućite strogi režim u datoteci tsconfig.json. To će vam smanjiti vreme za otklanjanje grešaka, što će dovesti do veće produktivnosti.
  • Omogućite stroge null provere: Možete uhvatiti sve null i undefined greške u vreme kompajliranja tako što ćete omogućiti stroge provere null vrednosti u datoteci tsconfig.json.
  • Koristite uređivač koda koji podržava TypeScript: Postoji mnogo uređivača koda. Dobra praksa je da odaberete uređivače koda kao što su VS Code, Sublime Text ili Atom koji podržavaju TypeScript kroz dodatke.
  • Koristite tipove i interfejse: Upotrebom tipova i interfejsa, možete definisati prilagođene tipove koje možete ponovo koristiti u celom projektu. Ovakav pristup čini vaš kod modularnijim i lakšim za održavanje.

Zaključak

Sada imate osnovnu strukturu aplikacije kreirane pomoću TypeScripta na Node.js. Sada možete koristiti standardne Node.js pakete, ali ipak pisati kod u TypeScriptu i uživati u svim dodatnim mogućnostima koje on nudi.

Ako tek počinjete da koristite TypeScript, pobrinite se da razumete razlike između TypeScripta i JavaScripta.