Sadržaj[Sakrij][Prikaži]
- 1. Šta je zapravo TypeScript i po čemu se razlikuje od JavaScripta?
- 2. Koje su neke značajne karakteristike TypeScript-a?
- 3. Koje su neke prednosti korištenja TypeScript-a?
- 4. Koji su neki nedostaci korištenja TypeScript-a?
- 5. Šta su tačno komponente TypeScript-a?
- 6. Možete li objasniti interfejse u TypeScript-u?
- 7. Šta su varijable u TypeScript-u i kako se deklarišu na različite načine?
- 8. Kako se podskup interfejsa može koristiti za generisanje novog tipa?
- 9. Šta mislite pod 'bilo kojim' tipovima i kada ih trebam koristiti?
- 10. Kako je TypeScript jezik sa opcionom statički otkucanom sintaksom?
- 11. Šta znače moduli u TypeScript-u?
- 12. Kako “enums” funkcioniraju u TypeScript-u?
- 13. Šta razlikuje interni modul od eksternog modula?
- 14. Šta znači anonimna funkcija TypeScript-a?
- 15. U TypeScript-u, šta je imenski prostor i kako ga deklarisati?
- 16. Koje modifikatore pristupa podržava TypeScript?
- 17. Da li TypeScript dozvoljava preopterećenje funkcija?
- 18. Kako TypeScript dozvoljava opcione argumente u funkcijama?
- 19. Kako se var, let i const razlikuju jedan od drugog?
- 20. U TypeScript-u opisati dekoratere?
- 21. Šta u TypeScript-u znače Mixins?
- 22. Šta su zapravo pseudonimi tipa u TypeScript-u?
- 23. Šta znači pojam „Varijabla opsega“?
- 24. Za šta se tačno koristi noImplicitAny?
- 25. Kako se tipovi spoja i ukrštanja razlikuju jedan od drugog?
- 26. Kako definirate ključnu riječ TypeScript Declare?
- 27. Šta su generički u TypeScript-u?
- 28. Šta JSX znači u TypeScript-u?
- 29. Šta su TypeScript ambijenti i kada ih trebam koristiti?
- 30. Šta mislite pod apstraktnom klasom u TypeScript-u?
- 31. Šta je zapravo datoteka TypeScript mape?
- 32. Šta su tvrdnje tipa u TypeScript-u?
- zaključak
Microsoft je razvio i nastavlja da podržava programski jezik TypeScript. Uz dodatak statičkog kucanja kao opcije, to je sintaktički nadskup JavaScripta.
Jezik za razvoj velikih aplikacija TypeScript kompajlira JavaScript. Pošto je TypeScript nadskup JavaScript-a, programi napisani u JavaScript-u su također važeći u TypeScript-u.
Ovdje je opsežna lista najtipičnijih pitanja i odgovora na razgovoru za TypeScript programere u slučaju da prisustvujete jednom.
1. Šta je zapravo TypeScript i po čemu se razlikuje od JavaScripta?
Superskup JavaScripta, TypeScript se kompilira u standardni JavaScript. Sa konceptualnog stanovišta, TypeScript i JavaScript su slični SASS i CSS.
Drugim riječima, TypeScript je ES6 JavaScript sa još nekoliko mogućnosti. JavaScript je jezik za skriptovanje sličniji Python-u, dok je TypeScript objektno orijentisan, statički otkucani jezik uporediv sa Javom i C#.
Klase i interfejsi su deo TypeScript-ovog objektno orijentisanog dizajna, a zaključivanje tipa je jedan od mnogih dostupnih alata zahvaljujući njegovom statičkom kucanju.
JavaScript je napisan u datoteci sa ekstenzijom .js, dok je TypeScript napisan u datoteci sa ekstenzijom .ts.
Za razliku od JavaScripta, TypeScript kod se ne može direktno pokrenuti u pretraživaču ili na bilo kojoj drugoj platformi i pretraživači ga ne razumiju. Ciljna platforma će tada pokrenuti običan JavaScript koji je generiran iz .ts datoteka pomoću TypeScriptovog transpilera.
2. Koje su neke značajne karakteristike TypeScript-a?
- Statičko kucanje je karakteristika TypeScript-a koja pomaže u provjeri tipa tokom kompilacije. Dakle, čak i bez izvršavanja skripte, možete otkriti greške u kodu dok ga pišete.
- DOM se može mijenjati korištenjem TypeScript-a za dodavanje ili uklanjanje stavki.
- Bilo koji operativni sistem, uključujući Windows, macOS i Linux, može imati instaliran TypeScript prevodilac.
- Klase, interfejsi i moduli su neke od funkcionalnosti koje nudi TypeScript. Tako može kreirati objektno orijentirani kod za razvoj na strani klijenta i servera.
- Većina karakteristika ECMAScript 2015 (ES 6, 7) je već uključena u TypeScript, uključujući klasu, interfejs, funkcije strelice itd.
- Ako koristite JavaScript-ovo dinamičko kucanje, TypeScript takođe podržava opciono statičko kucanje.
3. Koje su neke prednosti korištenja TypeScript-a?
- Bilo koji JavaScript motor ili pretraživač može izvršiti TypeScript jer je brz, lak za učenje i brzo radi.
- Dijeli istu sintaksu i semantiku kao i JavaScript.
- Ovo olakšava brže pisanje front-end koda od strane backend programera.
- Uključuje ES6 i ES7 mogućnosti koje mogu funkcija u JavaScript-u ES5 motori poput Node.js.
- Postojeće JavaScript biblioteke kao što su Jquery, D3.js, itd. su podržane preko datoteke Definition, koja ima ekstenziju.d.ts.
- JavaScript skripta koja već postoji može pozvati TypeScript kod. Takođe se neprimjetno integrira sa trenutnim JavaScript okvirima i bibliotekama.
4. Koji su neki nedostaci korištenja TypeScript-a?
- Kodiranje pomoću TypeScript-a zahtijeva dug proces kompilacije.
- Ne podržava klase koje su apstraktne.
- Kvalitet datoteka definicije tipa je problem.
- Bilo koja biblioteka treće strane mora imati datoteku definicije da bi se mogla koristiti.
- Korak kompilacije je neophodan za pretvaranje TypeScript u JavaScript ako želimo da pokrenemo TypeScript aplikaciju u pretraživaču.
- JavaScript već godinama koriste web programeri, a TypeScript ne pruža ništa novo.
5. Šta su tačno komponente TypeScript-a?
U TypeScript-u postoje tri glavne kategorije komponenti, uključujući:
- Jezik: Sadrži napomene za tip, ključne riječi i sintaksu.
- Compiler TypeScript: TypeScript instrukcije su prevedene u JavaScript od strane ovog kompajlera (tsc).
- TypeScript Language Service: Jezički servis nudi aplikacije nalik uređivaču kao drugi sloj na vrhu osnovnog procesa kompajlera. Servis jezika podržava standardni skup uobičajenih operacija uređivanja.
6. Možete li objasniti interfejse u TypeScript-u?
TypeScript koristi sučelje za specificiranje sintakse entiteta. Drugim riječima, oblici podataka poput objekata ili niza stavki mogu se opisati korištenjem sučelja. Ključna riječ interfejsa, ime interfejsa i njegova definicija se koriste za deklarisanje interfejsa. Hajde da ispitamo osnovni interfejs korisničkog objekta.
Tip varijable se tada može podesiti pomoću interfejsa (slično kao što promenljivoj dodeljujete primitivne tipove). Svojstva interfejsa će tada zadovoljiti varijabla tipa User.
Vaš TypeScript projekat ima koristi od interfejsa jer obezbeđuju uniformnost. Dodatno, interfejsi poboljšavaju alate vašeg projekta tako što poboljšavaju mogućnosti IDE autodovršavanja i garantuju da se prave vrednosti dostavljaju konstruktorima i metodama.
7. Šta su varijable u TypeScript-u i kako se deklarišu na različite načine?
Varijabla je posebno određena oblast memorije koja se koristi za čuvanje vrijednosti. Dvotačka (:) se postavlja iza imena varijable, a iza nje slijedi tip kada se deklarira varijabla u TypeScript-u. Promenljive deklarišemo ključnom reči var, baš kao u JavaScript-u.
Određene smjernice se moraju poštovati prilikom deklariranja varijable u Typescript-u:
- Ime ne može početi brojem.
- Ime varijable mora sadržavati slova ili brojeve.
- Simbol dolara ($) i donja crta (_) su jedini specijalni znakovi koji su dozvoljeni u ovom polju.
8. Kako se podskup interfejsa može koristiti za generisanje novog tipa?
Dostavljanjem postojećeg tipa ili sučelja i odabirom ključeva koji će biti izuzeti iz novog tipa, možete kreirati novi tip u TypeScript koristeći tip pomoćnog programa izostaviti.
Primer koji sledi pokazuje kako da se konstruiše novi tip pod nazivom UserPreview koji se zasniva na korisničkom interfejsu, ali isključuje svojstvo e-pošte.
9. Šta mislite pod 'bilo kojim' tipovima i kada ih trebam koristiti?
Ponekad je potrebno da sačuvate vrednost u promenljivoj, ali prethodno niste sigurni koji je tip varijable. Vrijednost bi mogla proizaći iz korisničkog unosa ili API zahtjeva, na primjer. Možete dati bilo koju vrstu vrijednosti tipu varijable koristeći tip "bilo koji".
Kada tip varijable nije eksplicitno specificiran i kompajler ga ne može odrediti iz konteksta, TypeScript vjeruje da je varijabla bilo koje vrste.
10. Kako je TypeScript jezik sa opcionom statički otkucanom sintaksom?
Moguće je naložiti kompajleru da zanemari tip varijable u TypeScript-u jer je opciono statički upisana. Bilo koji tip podataka može se koristiti za dodjelu bilo koje vrste vrijednosti varijabli. Kada se kompajlira, TypeScript neće pružiti nikakvu provjeru grešaka.
11. Šta znače moduli u TypeScript-u?
Efikasno je grupirati relevantne varijable, funkcije, klase, interfejse, itd. koristeći module. Može se koristiti, ali ne u globalnom opsegu, samo unutar svog vlastitog opsega.
U suštini, definisanim varijablama, funkcijama, klasama i interfejsima modula ne može se direktno pristupiti izvan modula.
Ključna riječ export može se koristiti za pravljenje modula, dok se ključna riječ import može koristiti za uključivanje modula u drugi modul.
12. Kako “enums” funkcioniraju u TypeScript-u?
Metoda definiranja kolekcije imenovanih konstanti je korištenje enuma ili nabrojanih tipova. Ove strukture podataka imaju fiksnu dužinu i kolekciju fiksnih vrijednosti.
Kada se predstavlja kolekcija alternativa za datu vrijednost u TypeScript-u, enume se često koriste za opisivanje mogućnosti korištenjem skupa parova ključ/vrijednost.
Pogledajmo ilustraciju enuma koji se koristi za pružanje raznih vrsta korisnika.
Enums se interno konvertuje u regularne JavaScript objekte pomoću TypeScript-a nakon kompilacije. Upotreba enuma je stoga poželjnija od upotrebe nekoliko odvojenih const varijabli.
Vaš kod je siguran za tipove i lakši za razumijevanje zbog grupiranja koje pruža enums.
13. Šta razlikuje interni modul od eksternog modula?
Interni modul:
- Interni moduli su bili karakteristika prethodne iteracije Typescript-a.
- Ime i tijelo internih modula definirani su korištenjem ModuleDeclarations.
- To su članovi drugih modula koji su lokalni ili izvezeni.
- Klase, interfejsi, funkcije i varijable su grupisane zajedno u interne module, koji se mogu eksportovati u drugi modul.
Eksterni modul:
- U najnovijoj verziji, eksterni moduli se nazivaju moduli.
- Za njihovo kreiranje koristi se zaseban izvorni fajl poznat kao eksterni modul, a svaki od njih ima najmanje jednu deklaraciju za uvoz ili izvoz.
- U najnovijoj verziji, eksterni moduli se nazivaju moduli.
- Interni iskazi definicija modula mogu se sakriti korištenjem eksternih modula, ostavljajući vidljivim samo metode i argumente povezane s definiranom varijablom.
14. Šta znači anonimna funkcija TypeScript-a?
Funkcije klasificirane kao anonimne nemaju naziv funkcije kao identifikator. Ove rutine se dinamički definiraju za vrijeme izvođenja. Kao i obične funkcije, anonimne funkcije mogu uzimati inpute i proizvoditi rezultate.
Anonimna funkcija je obično nedostupna nakon što je kreirana. Varijable se mogu dodijeliti anonimnoj funkciji.
15. U TypeScript-u, šta je imenski prostor i kako ga deklarisati?
Prostor imena logički grupiše funkcionalnosti. Oni interno čuvaju naslijeđeni kod tipkopisa. Obuhvaća osobine i stvari s određenim vezama.
Drugo ime za imenski prostor je interni modul. Interfejsi, klase, funkcije i varijable mogu se uključiti u prostor imena kako bi se pružila zbirka povezanih funkcionalnosti.
16. Koje modifikatore pristupa podržava TypeScript?
Slijede primjeri kako se javni, privatni i zaštićeni modifikatori pristupa u TypeScript-u mogu koristiti za kontrolu pristupačnosti člana klase:
- Javni – pristup je dostupan svakom članu klase, svim njenim potomcima i svakoj instanci klase.
- Zaštićeni – Oni su dostupni svakom članu klase i svim njenim podklasama. Međutim, instanca klase ne može pristupiti.
- Privatni pristup im je ograničen samo na članove klase.
Pošto je JavaScript zgodan, ako modifikator pristupa nije dat, pretpostavlja se da je javan.
17. Da li TypeScript dozvoljava preopterećenje funkcija?
Da, TypeScript podržava preopterećenje funkcija. Ali sada se to radi je čudno. Stoga, kada se preopterećuje sa TypeScript-om, postoji samo jedna implementacija sa različitim potpisima.
Dok drugi potpis sadrži parametar tipa teksta, prvi potpis ima samo jedan parametar broja tipa. Treća funkcija, koja uključuje argument tipa any, sadrži stvarnu implementaciju.
Implementacija tada određuje tip danog parametra i pokreće poseban dio koda u skladu s tim određivanjem.
18. Kako TypeScript dozvoljava opcione argumente u funkcijama?
Za razliku od JavaScripta, ako pokušate pozvati funkciju bez navođenja tačne količine i vrste parametara kao što je navedeno u potpisu funkcije, prevodilac TypeScript će pokrenuti grešku.
Možete koristiti opcione parametre upotrebom simbola upitnika ('?') da biste zaobišli ovaj problem. Pokazuje da se izborni parametri mogu označiti dodavanjem "?" onima koji mogu ili ne moraju dobiti vrijednost.
19. Kako se var, let i const razlikuju jedan od drugog?
TypeScript nudi tri različita načina za deklarisanje varijable, svaki sa predloženom aplikacijom.
ima: Deklariše globalnu varijablu ili varijablu s opsegom funkcije s ponašanjem JavaScript varijabli var i smjernicama za opseg. Promenljive ne moraju da postavljaju njihove vrednosti kada su deklarisane.
neka: deklarira varijablu bloka lokalnog opsega. Neka varijable ne trebaju vrijednost varijable za postavljanje kada su deklarirane. Izraz "lokalna varijabla s opsegom bloka" odnosi se na varijablu kojoj se može pristupiti samo iz bloka u kojem je sadržana, kao što je funkcija, if/else blok ili petlja. Neka se varijable ne mogu čitati ili upisivati prije nego što budu deklarirane, za razliku od var.
const: Deklariše vrijednost za konstantu s opsegom bloka koja se ne može mijenjati nakon što je inicijalizirana. Const varijable moraju biti inicijalizirane prije nego što budu deklarirane. Za varijable koje ostaju konstantne tokom čitavog svog postojanja, ovo je optimalno.
20. U TypeScript-u opisati dekoratere?
Pristupnik, svojstvo, parametar, klasa, funkcija ili dekorator mogu se deklarirati na specifičan način kao dekoratori. Dekoratori su funkcije s prefiksom @expression koje će biti pozvane u vrijeme izvođenja s detaljima o ukrašenoj deklaraciji.
Izraz mora procijeniti funkciju da bi dekorateri radili.
TypeScript dekoratori pružaju cilj deklarativnog dodavanja napomena i informacija trenutnom kodu.
U našoj datoteci tsconfig.json ili na komandnoj liniji morate aktivirati opciju kompajlera eksperimentalDecorators kako biste omogućili eksperimentalnu podršku za dekoratore:
21. Šta u TypeScript-u znače Mixins?
Miksini su tehnika kreiranja klasa od delova za višekratnu upotrebu u Javascript-u i mešanja delimičnih klasa da se kreiraju složenije pune klase.
Koncept je jednostavan: funkcija B prihvata klasu A i vraća novu klasu sa dodanom funkcionalnošću, za razliku od klase A koja proširuje klasu B da bi dobila svoju funkcionalnost. Funkcija B u ovom slučaju je mixin.
22. Šta su zapravo pseudonimi tipa u TypeScript-u?
Alijasi tipa mijenjaju ime tipa. Pseudonimi tipova, poput interfejsa, mogu se koristiti za imenovanje primitiva, sindikata, tuple i bilo kojih drugih tipova koji bi inače morali da se definišu ručno.
Aliasing ne stvara novi tip; umjesto toga, mijenja ime postojećeg tipa. Aliasing primitiva nije baš praktično, iako može biti od koristi za dokumentaciju.
Alijasi tipa, poput interfejsa, mogu biti univerzalni; sve što trebate učiniti je dodati parametre tipa i koristiti ih na desnoj strani deklaracije alijasa.
23. Šta znači pojam „Varijabla opsega“?
JavaScript podržava i lokalne i globalne varijable opsega. Opseg je skup objekata, varijabli i funkcija.
Primjer deklariranja varijable u dva opsega je:
- Varijabla s lokalnim opsegom – služi kao funkcijski objekt za korištenje unutar funkcija.
- Varijabla s globalnim opsegom – Ovaj objekt prozora može se koristiti unutar i izvan funkcija
24. Za šta se tačno koristi noImplicitAny?
Tretman TypeScript kompajlera implicitnih bilo kojih tipova vašeg projekta mijenja svojstvo noImplicitAny u konfiguracijskoj datoteci tsconfig.json za TypeScript projekte.
Oznaka noImplicitAny se može postaviti na true ili false i uvijek je promjenjiva nakon inicijalizacije. S obzirom na to da je svaki projekat jedinstven, ne postoji tačan ili pogrešan odgovor koji bi to broj trebao biti.
Razumijevanje razlika između uključenih i isključenih stanja zastavice može vam pomoći da odaberete koju postavku želite koristiti za zastavu.
Kompajler ne određuje tip varijable na osnovu načina na koji se koristi ako je zastavica noImplicitAny postavljena na false (podrazumevano). Tip je umjesto toga podešen na bilo koji prema zadanim postavkama od strane kompajlera.
Međutim, ako je opcija noImplicitAny postavljena na true, prevodilac će se potruditi da zaključi tip i podići će grešku u vremenu prevođenja ako to ne može učiniti.
25. Kako se tipovi spoja i ukrštanja razlikuju jedan od drugog?
Umjesto generiranja novih vrsta od nule, spojevi i tipovi ukrštanja vam omogućavaju da komponujete i miješate postojeće tipove. I spoj i križanje imaju karakteristične kvalitete koje ih čine savršenima za određene slučajeve upotrebe.
Tip koji može biti jedna od nekoliko vrsta naziva se tip sindikata. Lista tipova koji će se koristiti u novom tipu podijeljena je pomoću | (vertikalna traka) simbol u tipovima sindikata.
Pogledajmo ilustraciju:
S druge strane, raskrsnica je definirana kao tip koji spaja mnoge tipove u jedan, integrirajući sve karakteristike svakog tipa kako bi se formirao novi tip. Lista vrsta koje će biti spojene podijeljena je na raskrsnice pomoću simbola &.
Pogledajmo ilustraciju:
26. Kako definirate ključnu riječ TypeScript Declare?
Ne postoje TypeScript deklaracijske datoteke u JavaScript bibliotekama ili okvirima. Međutim, morate koristiti ključnu riječ declare kako biste ih koristili u TypeScript datoteci bez nailaska na greške pri kompilaciji.
Kada želite navesti varijablu koja bi već mogla postojati negdje drugdje, koristite ključnu riječ declare u ambijentalnim deklaracijama i metodama.
27. Šta su generički u TypeScript-u?
Alat pod nazivom TypeScript Generics nudi metodu za proizvodnju dijelova za višekratnu upotrebu. Umjesto da radi samo sa jednim oblikom podataka, može razviti komponente koje mogu raditi s nizom tipova podataka.
Osim toga, nudi sigurnost tipa bez žrtvovanja efikasnosti ili produktivnosti. Možemo izgraditi generičke klase, generičke funkcije, generičke metode i generička sučelja zahvaljujući genericima.
Generici su visoko tipizirane kolekcije jer je parametar tipa napisan između otvorenih () i zatvorenih (>) zagrada. Koristi jedinstvenu vrstu varijable tipa zvanu T koja označava tipove.
28. Šta JSX znači u TypeScript-u?
JSX je legitiman JavaScript koji se može konvertovati iz sintakse slične XML-u koji se može ugraditi. Zajedno sa React framework-om, JSX je stekao popularnost.
TypeScript podržava direktnu kompilaciju, provjeru tipa i ugrađivanje JSX-a u JavaScript. Svojoj datoteci morate dati ekstenziju a.tsx i aktivirati opciju JSX ako želite da je koristite.
29. Šta su TypeScript ambijenti i kada ih trebam koristiti?
Kompajler se informiše o stvarnom izvornom kodu koji se nalazi negdje drugdje putem ambijentalnih deklaracija.
Pokvariće se bez ikakve prethodne najave ako pokušamo koristiti ove izvorne kodove za vrijeme izvođenja, ali oni nisu prisutni. Datoteke slične dokumentima su datoteke ambijentalnih deklaracija.
Ako se izvor promijeni, dokumentacija se mora ažurirati, a problemi s kompajlerom će rezultirati ako se datoteka ambijentalne deklaracije ne promijeni.
Osim toga, omogućava nam da iskoristimo dobro poznate JavaScript biblioteke koje su već široko korištene, kao što su jQuery, AngularJS, NodeJS, itd.
30. Šta mislite pod apstraktnom klasom u TypeScript-u?
Apstraktne klase definiraju ugovor objekta bez dopuštanja direktnog instanciranja objekta. Međutim, apstraktna klasa takođe može ponuditi informacije o implementaciji svog člana.
Jedan ili više apstraktnih članova može se naći u apstraktnoj klasi. Apstraktni članovi superklase tada moraju imati implementaciju koju pružaju sve klase koje proširuju apstraktnu klasu.
Pogledajmo TypeScript primjer apstraktne klase i kako bi je druga klasa mogla proširiti. Iako i klase Car i Bike u primjeru ispod proširuju klasu Vehicle, svaka od njih implementira funkciju drive() na jedinstven način.
31. Šta je zapravo datoteka TypeScript mape?
Izvorna datoteka mape koja se zove TypeScript Map datoteka sadrži podatke o našim originalnim datotekama. Datoteke izvorne mape, ili .map datoteke, omogućavaju alatima da mapiraju između JavaScript koda koji se izlazi i TypeScript izvornih datoteka koje su ga proizvele.
Osim toga, ove datoteke mogu koristiti programi za otklanjanje grešaka, što nam omogućava da otklonimo greške u TypeScript datoteci umjesto u JavaScript fajlu.
32. Šta su tvrdnje tipa u TypeScript-u?
Dok tvrdnja tipa funkcionira slično kao i uvođenje tipova u drugim jezicima kao što su C# i Java, ona ne provodi verifikaciju tipa ili preuređivanje podataka.
Dok tvrdnja tipa nema efekta na vrijeme izvođenja, uvođenje tipa nudi ovu podršku. Tvrdnje tipa, s druge strane, koristi samo kompajler i daju smjernice o tome kako želimo da se naš kod ispita.
zaključak
U zaključku, nadamo se da će vam ova pitanja za razgovor za TypeScript biti od pomoći, bilo da ste programer koji se sprema za intervju za posao ili menadžer za zapošljavanje koji pokušava pronaći najboljeg kandidata.
Zapamtite da proces zapošljavanja uključuje više od tehničke stručnosti. Da biste bili sigurni da ćete dobiti (ili locirati odgovarajućeg kandidata za) posao, prošla iskustva i meke vještine su jednako ključni.
Mnoga pitanja TypeScript intervjua su otvorena i nemaju jedan tačan odgovor, pa imajte to na umu.
Anketare zanima obrazloženje vaših odgovora.
Uvijek budite spremni na dodatna pitanja koja objašnjavaju kako ste došli do svog odgovora. Opišite svoj misaoni proces.
Ostavite odgovor