-
Notifications
You must be signed in to change notification settings - Fork 1
30. TypeScript, osnove
Typescript je besplatan programski jezik otvorenog koda napravljen od strane Microsoft-a. Typescript je sintaksički nadskup JS-a (ECMAScript 6), pa je svaki validan JS program istovremeno validan Typescript program. Za Typescript se često kaže da je to JS sa tipovima što i jeste istina jer je glavna novina koju Typescript donosi statička tipizacija. Typescript je jezik čiji se izvorni kod sa ekstenzijom .ts kompajlira u JS (ECMAScript 5). To znači da praktično i dalje imamo dinamičku tipizaciju na nivou JS koda dobijenog kompilacijom tj. da se tip svake promenljive određuje u vreme izvršenja, s tim da ovde imamo jedan sloj iznad koji nam pruža prividnu statičku tipizaciju tako što će sva neuklapanja tipova (najčešće kada se funkciji prosleđuju argumenti neodgovarajućeg tipa ili prilikom dodele) biti prijavljenja kao greška (greška u vremenu prevođenja).
Kao sledeći primer dat je jednostavan JS program:
function greeter(person) {
return "Hello, " + person;
}
let user = "User1";
document.body.innerHTML = greeter(user);Ovo je, naravno, istovremeno validan Typescript program. Kada se radi o Typescript-u, ovom programu možemo dodati tipove.
Typescript program:
function greeter(person: string) {
return "Hello, " + person;
}
let user1 = "User1";
let user2 = [0, 1, 2];
alert(greeter(user1));
alert(greeter(user2)); Rezultat prevođenja u JS:
function greeter(person) {
return "Hello, " + person;
}
var user1 = "User1";
var user2 = [0, 1, 2];
alert(greeter(user1));
alert(greeter(user2));U poslednjem primeru, kod drugog poziva biće prijavljena greška još u vreme prevođenja. Ako bismo poslednji primer ispravili u:
Typescript program:
function greeter(person: string) {
return "Hello, " + person;
}
let user1 = "User1";
let user2 = "User2";
alert(greeter(user1));
alert(greeter(user2)); Rezultat prevođenja u JS:
function greeter(person) {
return "Hello, " + person;
}
var user1 = "User1";
var user2 = "User2";
alert(greeter(user1));
alert(greeter(user2));Moguće je naglašavati tipove prilikom deklaracije promenljivih:
Typescript program:
let fullName: string = `John Doe`;
let age: number = 37;
let sentence: string = `Hello, my name is ${ fullName }.I'll be ${ age + 1 } years old next month.`;
let list: number[] = [1, 2, 3];
let words: string[] = ['Infant','Child','Teenager', 'Adult', 'Elderly'];Rezultat prevođenja u JS:
var fullName = "John Doe";
var age = 37;
var sentence = "Hello, my name is " + fullName + ".I'll be " + (age + 1) + " years old next month.";
var list = [1, 2, 3];
var words = ['Infant','Child','Teenager', 'Adult', 'Elderly'];