Type­Script ima številne ključne funkcije, ki bistveno iz­bolj­šu­je­jo razvoj spletnih aplikacij. Ta Type­Script tutorial vam ponuja uvod v pro­gram­ski jezik in po­ja­snju­je nekatere njegove naj­po­memb­nej­še funkcije in uporabe ter njegove prednosti in slabosti.

Kaj je Type­Script?

Type­Script je razvil Microsoft in temelji na pro­gram­skem jeziku Ja­va­Script, ki se pogosto uporablja pri razvoju spletnih strani. Ena od zna­čil­no­sti Type­Script, ki izstopa, je statično ti­pi­zi­ra­nje. Za razliko od Ja­va­Script, ki ima dinamično ti­pi­zi­ra­nje, Type­Script omogoča de­kla­ra­ci­jo po­dat­kov­nih tipov za spre­men­ljiv­ke, funkcije in parametre. To omogoča zgodnje od­kri­va­nje napak v kodi, kar omogoča iden­ti­fi­ka­ci­jo napak še pred izvedbo kode. Statično ti­pi­zi­ra­nje ne le znatno izboljša kakovost kode, ampak tudi njeno ber­lji­vost.

Sintaksa Type­Script je skoraj identična sintaksi Ja­va­Script, kar olajša njegovo vklju­če­va­nje v obstoječe projekte Ja­va­Script. Type­Script je dejansko nad­gra­dnja Ja­va­Script, kar pomeni, da je vsak pravilni Ja­va­Script koda tudi veljavna Type­Script koda. To vam omogoča postopno prehod na Type­Script in iz­ko­ri­šča­nje prednosti sta­tič­ne­ga ti­pi­zi­ra­nja in drugih funkcij, ne da bi morali popolnoma prepisati obstoječo kodno bazo.

Tukaj je preprost primer Ja­va­Script:

function greet(name) {
    return "Hello, " + name;
}
console.log(greet(123)); // Output: "Hello, 123"
ja­va­script

V zgornjem kodu funkcija greet ni omejena na določen po­dat­kov­ni tip za parameter name. To pomeni, da bo funkcija delovala tudi, če kot argument prenesemo število.

V Type­Scrip­tu lahko koda izgleda takole:

function greet(name: string): string {
    return "Hello, " + name;
}
console.log(greet(123)); // Error in TypeScript
type­script

Tukaj smo parameter name de­kla­ri­ra­li kot niz. Če poskušamo uporabiti funkcijo s številko, bo Type­Script prikazal napako, ker se prenesen tip podatkov ne ujema s pri­ča­ko­va­nim tipom podatkov.

Ta primer kaže, kako Type­Script pomaga zgodaj odkriti napake in iz­bolj­ša­ti kakovost kode, saj pre­pre­ču­je napačno uporabo po­dat­kov­nih tipov. Pomembno je omeniti, da se Type­Script na koncu prevede v Ja­va­Script, kar omogoča njegovo izvajanje v katerem koli Ja­va­Script okolju. To pa pomeni, da lahko prednosti varnosti tipov iz­ko­ri­sti­te le v razvojni fazi.

Za kaj se uporablja Type­Script?

Type­Script je ne­po­gre­šljiv za različne področja razvoja pro­gram­ske opreme, zlasti v si­tu­a­ci­jah, kjer sta varnost tipov in kakovost kode ključnega pomena.

Pomemben primer uporabe Type­Script je razvoj spletnih strani. Type­Script za­go­ta­vlja, da je koda Ja­va­Script napisana na način, ki jo naredi varnejšo in lažjo za vzdr­že­va­nje. To je koristno pri obsežnih frontend projektih s kom­ple­ksni­mi kodnimi bazami. Vendar pa se Type­Script lahko im­ple­men­ti­ra tudi na stre­žni­ški strani (backend) v apli­ka­ci­jah Node.js, da se zagotovi dodatna raven varnosti. V ar­hi­tek­tu­rah brez stre­žni­kov, kot sta AWS Lambda in Azure Functions, Type­Script pomaga zmanjšati napake in za­go­to­vi­ti za­ne­slji­vo izvajanje.

Razvoj za več platform je še eno področje, na katerem Type­Script pokaže svoje prednosti. Z njim je mogoče znatno op­ti­mi­zi­ra­ti razvoj aplikacij za več platform in mobilnih aplikacij. Okviri, kot sta Na­ti­ve­Script in React Native, ponujajo podporo za Type­Script pri pro­gra­mi­ra­nju mobilnih aplikacij za različne platforme. Pri razvoju iger se Type­Script uporablja v projektih, ki upo­ra­blja­jo WebGL ali igralne motorje, kot sta Phaser ali Babylon.js. Varnost tipov Type­Script pomaga iz­bolj­ša­ti kakovost in vzdr­že­va­nje iger.

Type­Script se uporablja tudi za projekte vi­zu­a­li­za­ci­je in analize podatkov. Knjižnice, kot je D3.js, podpirajo Type­Script in omogočajo ustvar­ja­nje so­fi­sti­ci­ra­nih nadzornih plošč in vi­zu­a­li­za­cij.

Kako namestiti Type­Script

Na­me­sti­tev Type­Script je preprosta in zahteva le nekaj korakov. Če imate na ra­ču­nal­ni­ku Node.js, lahko Type­Script namestite z npm (Node Package Manager).

Korak 1: Prenesite Node.js

Preverite, ali imate na ra­ču­nal­ni­ku nameščen Node.js. Če Node.js še niste namestili, ga lahko prenesete in namestite s spletne strani.

Korak 2: Namestite Type­Script v terminalu

Odprite ukazno vrstico (npr. ukazno vrstico v sistemu Windows ali terminal v sistemu macOS ali Linux) in vnesite naslednji ukaz, da namestite Type­Script globalno:

npm install -g typescript
bash

Z zastavico -g (globalno) se Type­Script namesti na celoten sistem, tako da ga lahko upo­ra­blja­te kjerkoli.

Korak 3: Preverite nameščeno različico

Uspešnost na­me­sti­tve lahko preverite z izvedbo na­sle­dnje­ga ukaza:

tsc -v
bash

Ta ukaz prikaže, katera različica Type­Script je nameščena. Če se prikaže številka različice, pomeni, da je na­me­sti­tev uspela.

Po na­me­sti­tvi lahko ustvarite datoteke Ja­va­Script tako, da ustvarite datoteke Type­Script (s končnico .ts) in jih kom­pi­li­ra­te s kom­pi­la­tor­jem Type­Script tsc.

Korak 4: Ustvarite datoteko Type­Script

Ustvarite datoteko Type­Script, npr. app.ts, in vstavite svoj Type­Script kodo.

type Person = { name: string, age: number };
const alice: Person = { name: "Alice", age: 30 };
console.log(`Hello, I am ${alice.name} and I am ${alice.age} years old.`);
type­script

Korak 5: Kom­pi­li­raj­te datoteko

Zapišite datoteko Type­Script tako, da vnesete naslednji ukaz:

tsc app.ts
bash

S tem se bo app.ts kom­pi­li­ral v Ja­va­Script datoteko z imenom app.js. Nato lahko izvedete Ja­va­Script datoteko.

Katere funkcije ima Type­Script?

Razvoj spletnih strani je v zadnjih letih znatno na­pre­do­val, Type­Script pa se je uveljavil kot izredno učin­ko­vi­ta al­ter­na­ti­va Ja­va­Scrip­tu. V na­da­lje­va­nju smo povzeli naj­po­memb­nej­še zna­čil­no­sti tega jezika.

Statično ti­pi­zi­ra­nje

Statično ti­pi­zi­ra­nje je bistvena zna­čil­nost Type­Script, ki omogoča določanje po­dat­kov­nih tipov za spre­men­ljiv­ke, parametre, funkcije in druge elemente v kodi. Za razliko od di­na­mič­ne­ga ti­pi­zi­ra­nja v Ja­va­Script, kjer se po­dat­kov­ni tipi določijo med iz­va­ja­njem, se v Type­Script po­dat­kov­ni tipi dodelijo med razvojem, še preden se koda izvede. Ta metoda pomaga zgodaj odkriti napake in logične težave.

function add(a: number, b: number): number {
    return a + b;
}
const result = add(5, 3); // valid
const result = add(5, "3"); // Type Error
type­script

V tem primeru smo za funkcijo add uporabili statično ti­pi­zi­ra­nje. Parametra a in b sta de­kla­ri­ra­na kot števili (number), funkcija pa vrne vrednost tipa number. Vsak poskus uporabe te funkcije z drugačnim tipom podatkov bo povzročil, da jo bo Type­Script prepoznal kot napako.

Izbirno tipkanje

Z izbirnim tipkanjem lahko določite po­dat­kov­ne tipe za določene spre­men­ljiv­ke in parametre, druge pa pustite brez do­lo­če­ne­ga po­dat­kov­ne­ga tipa.

function sayHello(name: string, age: any): string {
    if (age) {
        return `Hello, ${name}, you are ${age} years old.`;
    } else {
        return `Hello, ${name}.`;
    }
}
type­script

Funkcija sayHello je de­fi­ni­ra­na s pa­ra­me­tro­ma name in age. Oznaka any pomeni, da je parameter age lahko kateri koli po­dat­kov­ni tip.

Funkcije ES6+

Type­Script podpira sodobne funkcije Ja­va­Script, vključno z ES6 in novejšimi funk­ci­ja­mi, kot so puščice funkcije in predloge nizov.

const multiply = (a: number, b: number): number => a * b;
const greeting = (name: string) => `Hello, ${name}!`;
type­script

Funkcije puščice omogočajo krajšo in bolj jedrnato sintakso.

Or­ga­ni­za­ci­ja kode

Type­Script omogoča boljšo or­ga­ni­za­ci­jo kode in za­go­ta­vlja, da je koda raz­de­lje­na na ponovno uporabne dele. To je mogoče zaradi modulov in imenskih prostorov.

// Math.ts
export function add(a: number, b: number): number {
    return a + b;
}
// Main.ts
import { add } from './Math';
const result = add(5, 3);
type­script

Tukaj pri­ka­zu­je­mo, kako struk­tu­ri­ra­ti kodo z moduli in uporabiti import in export za or­ga­ni­za­ci­jo. Funkcija add je de­fi­ni­ra­na znotraj ločenega modula z imenom Math.ts, nato pa uvožena in in­te­gri­ra­na v drug modul, Main.ts.

Objektno usmerjeno pro­gra­mi­ra­nje (OOP)

Type­Script olajšuje objektno usmerjeno pro­gra­mi­ra­nje s pomočjo razredov, vmesnikov in dedovanja Type­Script:

class Person {
    constructor(public name: string, public age: number) {}
    greet() {
        console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`);
    }
}
const person = new Person("Alice", 30);
person.greet();
type­script

Ta primer prikazuje uporabo razredov in objektno usmer­je­ne­ga pro­gra­mi­ra­nja (OOP) v Type­Scrip­tu. Razred Person ima lastnosti name, age in metodo greet, ki se uporablja za pred­sta­vi­tev osebe in za­go­ta­vlja­nje in­for­ma­cij o njej.

Razširjen tip sistem

Tipski sistem Type­Script je pri­la­go­dljiv in obsežen. Lahko ustvarite upo­rab­ni­ško de­fi­ni­ra­ne tipe in vmesnike ter celo razširite obstoječe tipe.

interface Animal {
    name: string;
}
 
interface Dog extends Animal {
    breed: string;
}
const myDog: Dog = { name: "Buddy", breed: "Labrador" };
type­script

Vmesnik Animal definira lastnost name, medtem ko vmesnik Dog podeduje lastnost Animal in doda dodatno lastnost breed. Objekt myDog ima zna­čil­no­sti obeh vmesnikov.

Zdru­žlji­vost z Ja­va­Scrip­tom

Type­Script je združljiv z Ja­va­Scrip­tom, kar omogoča njegovo izvajanje v katerem koli Ja­va­Script okolju. Ta zdru­žlji­vost olajšuje postopno vklju­če­va­nje Type­Script v obstoječe Ja­va­Script projekte.

// JavaScript-Code
function greet(name) {
    return "Hello, " + name;
}
// TypeScript-Code
function greet(name: string): string {
    return "Hello, " + name;
}
type­script

Zgornja Ja­va­Script koda (brez ti­pi­za­ci­je) se lahko brez težav uporabi v Type­Script kodi (z ti­pi­za­ci­jo).

Kakšne so prednosti in slabosti Type­Script?

Čeprav Type­Script ponuja številne prednosti, ima tudi nekaj slabosti. Tukaj je pregled:

Prednosti

Type­Script ima obsežen ekosistem tipskih definicij za številne Ja­va­Script knjižnice in okvire. To omogoča enostavno in ne­po­sre­dno vklju­če­va­nje kode tretjih oseb v projekte Type­Script. To je koristno v današnjem svetu spletnih aplikacij, ki pogosto temeljijo na več knji­žni­cah in okvirih.

Poleg sta­tič­ne­ga ti­pi­zi­ra­nja Type­Script ponuja številne razvojne funkcije, vključno z vmesniki, razredi, moduli in podporo za trenutne standarde ECMA­Script. Te funkcije iz­bolj­šu­je­jo strukturo kode, olaj­šu­je­jo vzdr­že­va­nje in pri­la­go­dlji­vost projektov ter spod­bu­ja­jo pro­duk­tiv­nost razvoja. Mnoga in­te­gri­ra­na razvojna okolja (IDE), kot je Visual Studio Code, za­go­ta­vlja­jo odlično podporo za Type­Script.

Po­manj­klji­vo­sti

Type­Script zahteva nekaj časa, da se ga navadiš, še posebej za raz­vi­jal­ce, ki so pred tem delali samo z Ja­va­Scrip­tom. Type­Script kodo je treba najprej prevesti v Ja­va­Script, preden jo je mogoče izvajati v br­skal­ni­kih ali okoljih Node.js. To ustvarja dodatni korak v razvojnem procesu.

V manjših projektih se Type­Script lahko zdi preveč zapleten, saj prednosti varnosti tipov morda niso tako očitne. Projekti Type­Script lahko zahtevajo več virov zaradi dodatnih in­for­ma­cij o tipih in korakov kom­pi­la­ci­je.

Kakšne so al­ter­na­ti­ve za Type­Script?

Obstajajo različni spletni pro­gram­ski jeziki, ki so lahko dobra al­ter­na­ti­va za Type­Script, odvisno od spe­ci­fič­nih zahtev projekta in preferenc raz­vi­jal­ca(-ev).

  • Flow: Flow je statični pre­ver­je­val­nik tipov za Ja­va­Script, ki ga je razvil Facebook. Omogoča dodajanje tipov v Ja­va­Script kodo, ne da bi bilo treba popolnoma preiti na Type­Script. Flow je dobra izbira, če želite postopoma vključiti tipkanje v svoje Ja­va­Script projekte.
  • Dart: to je pro­gram­ski jezik, ki ga je razvil Google in se lahko uporablja za ustvar­ja­nje spletnih aplikacij in mobilnih aplikacij. Ponuja varnost tipov in dobro zmo­glji­vost. Dart se pogosto uporablja v kom­bi­na­ci­ji z okvirom Flutter za razvoj mobilnih aplikacij.
  • Pu­re­Script: Pu­re­Script je strogo tipiziran funk­ci­o­nal­ni pro­gram­ski jezik, ki vključuje močno varnost tipov in čisto funk­ci­o­nal­ni pro­gram­ski stil. Omogoča uvoz Ja­va­Scrip­to­vih knjižnic.
  • Elm: Elm je funk­ci­o­nal­ni, strogo tipiziran jezik, zasnovan za razvoj spletnih aplikacij. Elm spodbuja načelo Elm Ar­chi­tec­tu­re in ima visoko raven varnosti tipov.
  • ReasonML (Buckle­Script): ta jezik je razvil Facebook in temelji na OCaml. Buckle­Script je pre­va­jal­nik, ki prevaja ReasonML v Ja­va­Script. Omogoča tudi varnost tipov in je enostaven za in­te­gra­ci­jo z React za razvoj frontenda.
Tip

V drugih člankih našega di­gi­tal­ne­ga vodnika se poglobimo v druge teme, kot so funkcije Type­Script in nizi Type­Script.

f9da1c6cf9adef7aa5114f0cfa7742bf

81f291b03b4abca1d322ac1870f1df83

Go to Main Menu