Pregled sadržaja[Sakriti][Pokazati]
- 1. Što je točno TypeScript i po čemu se razlikuje od JavaScripta?
- 2. Koje su značajne značajke TypeScripta?
- 3. Koje su neke prednosti korištenja TypeScripta?
- 4. Koji su neki nedostaci korištenja TypeScripta?
- 5. Što su točno komponente TypeScripta?
- 6. Možete li objasniti sučelja u TypeScriptu?
- 7. Što su varijable u TypeScriptu i kako se deklariraju na razne načine?
- 8. Kako se podskup sučelja može koristiti za generiranje novog tipa?
- 9. Što mislite pod 'bilo koje' vrste i kada ih trebam koristiti?
- 10. Kako je TypeScript jezik s izbornom statički tipiziranom sintaksom?
- 11. Što znače moduli u TypeScriptu?
- 12. Kako “enums” funkcioniraju u TypeScriptu?
- 13. Po čemu se unutarnji modul razlikuje od vanjskog modula?
- 14. Što znači TypeScriptova anonimna funkcija?
- 15. Što je prostor imena u TypeScriptu i kako ga deklarirati?
- 16. Koje modifikatore pristupa podržava TypeScript?
- 17. Dopušta li TypeScript preopterećenje funkcija?
- 18. Kako TypeScript dopušta neobavezne argumente u funkcijama?
- 19. Kako se var, let i const međusobno razlikuju?
- 20. U TypeScriptu opišite dekoratore?
- 21. Što Mixins znače u TypeScriptu?
- 22. Što su zapravo pseudonimi tipa u TypeScriptu?
- 23. Što znači pojam "varijabla opsega"?
- 24. Za što se točno koristi noImplicitAny?
- 25. Kako se tipovi spoja i križanja međusobno razlikuju?
- 26. Kako definirate TypeScript Declare Keyword?
- 27. Što su generici u TypeScriptu?
- 28. Što JSX znači u TypeScriptu?
- 29. Što su TypeScript ambijenti i kada ih trebam koristiti?
- 30. Što mislite pod apstraktnom klasom u TypeScriptu?
- 31. Što je točno TypeScript Map datoteka?
- 32. Što su tipske tvrdnje u TypeScriptu?
- Zaključak
Microsoft je razvio i nastavlja podržavati programski jezik TypeScript. Uz dodatak statičkog tipkanja kao opcije, to je sintaktički nadskup JavaScripta.
Jezik za razvoj velikih aplikacija TypeScript kompilira JavaScript. Budući da je TypeScript nadskup JavaScripta, programi napisani u JavaScriptu također su valjani u TypeScriptu.
Ovdje je opsežan popis najtipičnijih pitanja i odgovora na intervjuu za TypeScript programere u slučaju da prisustvujete jednom.
1. Što je točno TypeScript i po čemu se razlikuje od JavaScripta?
Nadskup JavaScripta, TypeScript kompilira standardni JavaScript. S konceptualnog stajališta, TypeScript i JavaScript slični su SASS-u i CSS-u.
Drugim riječima, TypeScript je ES6 JavaScript s još nekoliko mogućnosti. JavaScript je skriptni jezik sličniji Pythonu, dok je TypeScript objektno orijentiran, statički tipiziran jezik usporediv s Javom i C#.
Klase i sučelja dio su TypeScriptovog objektno orijentiranog dizajna, a zaključivanje tipa jedan je od mnogih dostupnih alata zahvaljujući svom statičkom tipkanju.
JavaScript je zapisan u datoteci s ekstenzijom .js, dok je TypeScript zapisan u datoteci s ekstenzijom .ts.
Suprotno JavaScriptu, TypeScript kod se ne može izravno pokrenuti u pregledniku ili na bilo kojoj drugoj platformi i preglednici ga ne razumiju. Ciljna platforma će zatim pokrenuti običan JavaScript koji je generiran iz .ts datoteka pomoću TypeScript transpilera.
2. Koje su značajne značajke TypeScripta?
- Statički tip je značajka TypeScripta koja pomaže pri provjeri tipa tijekom kompilacije. Dakle, čak i bez izvršavanja skripte, možete otkriti pogreške u kodu dok ga pišete.
- DOM se može mijenjati pomoću TypeScripta za dodavanje ili uklanjanje stavki.
- Bilo koji operativni sustav, uključujući Windows, macOS i Linux, može imati instaliran TypeScript kompajler.
- Klase, sučelja i moduli neke su od funkcionalnosti koje nudi TypeScript. Stoga može stvoriti objektno orijentirani kod za razvoj na strani klijenta i na strani poslužitelja.
- Većina značajki ECMAScripta 2015 (ES 6, 7) već je uključena u TypeScript, uključujući klasu, sučelje, funkcije strelica itd.
- Ako koristite dinamičko tipkanje JavaScripta, TypeScript također podržava izborno statično tipkanje.
3. Koje su neke prednosti korištenja TypeScripta?
- Bilo koja JavaScript mašina ili preglednik može izvršiti TypeScript jer je brz, jednostavan za naučiti i brzo radi.
- Dijeli istu sintaksu i semantiku kao 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 JavaScriptu ES5 motori poput Node.js.
- Postojeće JavaScript biblioteke kao što su Jquery, D3.js itd. podržane su putem datoteke definicije koja ima ekstenziju.d.ts.
- JavaScript skripta koja već postoji može pozvati TypeScript kod. Također se neprimjetno integrira s trenutnim JavaScript okvirima i bibliotekama.
4. Koji su neki nedostaci korištenja TypeScripta?
- Kodiranje s TypeScriptom zahtijeva dugotrajan proces kompilacije.
- Ne podržava klase koje su apstraktne.
- Kvaliteta datoteka s definicijom vrste je problem.
- Svaka biblioteka treće strane mora imati datoteku definicije da bi se mogla koristiti.
- Korak kompilacije je neophodan za pretvaranje TypeScripta u JavaScript ako želimo pokrenuti TypeScript aplikaciju u pregledniku.
- JavaScript već godinama koriste web programeri, a TypeScript ne nudi ništa novo.
5. Što su točno komponente TypeScripta?
U TypeScriptu postoje tri glavne kategorije komponenti, uključujući:
- Jezik: Uključuje bilješke za vrstu, ključne riječi i sintaksu.
- TypeScript prevodilac: Ovaj kompajler (tsc) prevodi TypeScript upute u JavaScript.
- Usluga jezika TypeScript: Jezična usluga nudi aplikacije poput uređivača kao drugi sloj povrh osnovnog procesa prevoditelja. Jezična usluga podržava standardni skup uobičajenih operacija uređivanja.
6. Možete li objasniti sučelja u TypeScriptu?
TypeScript koristi sučelja za određivanje sintakse entiteta. Drugim riječima, oblici podataka poput objekata ili niza stavki mogu se opisati pomoću sučelja. Ključna riječ sučelja, naziv sučelja i njegova definicija koriste se za deklariranje sučelja. Ispitajmo osnovno sučelje korisničkog objekta.
Tip varijable se tada može postaviti pomoću sučelja (slično kao što varijabli dodjeljujete primitivne tipove). Svojstva sučelja tada će zadovoljiti varijabla tipa User.
Vaš TypeScript projekt ima koristi od sučelja jer pružaju uniformnost. Osim toga, sučelja poboljšavaju alate vašeg projekta poboljšavajući mogućnosti IDE automatskog dovršavanja i jamčeći da se prave vrijednosti isporučuju konstruktorima i metodama.
7. Što su varijable u TypeScriptu i kako se deklariraju na razne načine?
Varijabla je posebno određeno područje memorije koje se koristi za čuvanje vrijednosti. Dvotočka (:) se stavlja iza naziva varijable i slijedi tip kada deklarirate varijablu u TypeScriptu. Varijable deklariramo ključnom riječi var, baš kao u JavaScriptu.
Prilikom deklariranja varijable u Typescriptu moraju se poštivati određene smjernice:
- Ime ne može započeti brojem.
- Naziv varijable mora sadržavati slova ili brojke.
- Simbol dolara ($) i podvlaka (_) jedini su posebni znakovi koji su dopušteni u ovom polju.
8. Kako se podskup sučelja može koristiti za generiranje novog tipa?
Dostavljanjem postojećeg tipa ili sučelja i odabirom ključeva koji će biti isključeni iz novog tipa, možete stvoriti novi tip u TypeScriptu koristeći izostavljanje tipa pomoćnog programa.
Primjer koji slijedi pokazuje kako konstruirati novi tip pod nazivom UserPreview koji se temelji na korisničkom sučelju, ali isključuje svojstvo e-pošte.
9. Što mislite pod 'bilo koje' vrste i kada ih trebam koristiti?
Ponekad morate spremiti vrijednost u varijablu, ali niste sigurni u vrstu varijable prije toga. Vrijednost može potjecati od korisničkog unosa ili API zahtjeva, na primjer. Tipu varijable možete dati bilo koju vrstu vrijednosti koristeći tip "bilo koji".
Kada tip varijable nije eksplicitno naveden i kompajler je ne može odrediti iz konteksta, TypeScript vjeruje da je varijabla tipa bilo koji.
10. Kako je TypeScript jezik s izbornom statički tipiziranom sintaksom?
Moguće je uputiti kompajler da zanemari tip varijable u TypeScriptu budući da je po izboru statički tipizirana. Bilo koji tip podataka može se koristiti za dodjeljivanje bilo koje vrste vrijednosti varijabli. Kad se prevodi, TypeScript neće omogućiti provjeru pogrešaka.
11. Što znače moduli u TypeScriptu?
Učinkovito je grupirati relevantne varijable, funkcije, klase, sučelja itd. pomoću modula. Može se koristiti, ali ne u globalnom opsegu, samo unutar vlastitog opsega.
U biti, definiranim varijablama, funkcijama, klasama i sučeljima modula ne može se izravno pristupiti izvan modula.
Ključna riječ export može se koristiti za izradu modula, dok se ključna riječ import može koristiti za uključivanje modula u drugi modul.
12. Kako “enums” funkcioniraju u TypeScriptu?
Metoda definiranja zbirke imenovanih konstanti je korištenje enuma ili enumeriranih tipova. Ove strukture podataka imaju fiksnu duljinu i kolekciju fiksnih vrijednosti.
Kada predstavljate kolekciju alternativa za danu vrijednost u TypeScriptu, enumi 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.
Enume se interno pretvaraju u regularne JavaScript objekte pomoću TypeScripta nakon kompilacije. Upotreba enuma je stoga poželjnija od upotrebe nekoliko zasebnih const varijabli.
Vaš kod je siguran za tip i lakši za razumijevanje zbog grupiranja koje enumi pružaju.
13. Po čemu se unutarnji modul razlikuje od vanjskog modula?
Interni modul:
- Interni moduli bili su značajka prethodne iteracije Typescripta.
- Naziv i tijelo internih modula definirani su pomoću ModuleDeclarations.
- To su članovi drugih modula koji su lokalni ili izvezeni.
- Klase, sučelja, funkcije i varijable grupirani su zajedno u internim modulima, koji se mogu izvesti u drugi modul.
Vanjski modul:
- U najnovijoj verziji, vanjski moduli se nazivaju modulima.
- Za njihovo stvaranje koristi se zasebna izvorna datoteka poznata kao vanjski modul, a svaka od njih ima najmanje jednu uvoznu ili izvoznu deklaraciju.
- U najnovijoj verziji, vanjski moduli se nazivaju modulima.
- Interni iskazi definicija modula mogu se sakriti korištenjem vanjskih modula, ostavljajući vidljivima samo metode i argumente povezane s definiranom varijablom.
14. Što znači TypeScriptova anonimna funkcija?
Funkcije klasificirane kao anonimne nemaju naziv funkcije kao identifikator. Ove se rutine dinamički definiraju tijekom izvođenja. Kao i obične funkcije, anonimne funkcije mogu primati unose i proizvoditi rezultate.
Anonimna funkcija je obično nedostupna nakon što je kreirana. Varijable se mogu dodijeliti anonimnoj funkciji.
15. Što je prostor imena u TypeScriptu i kako ga deklarirati?
Prostor imena logički grupira funkcionalnosti. Oni interno čuvaju naslijeđeni kod strojopisa. Obuhvaća osobine i stvari s posebnim vezama.
Drugi naziv za imenski prostor je interni modul. Sučelja, klase, funkcije i varijable mogu se uključiti u imenski prostor kako bi se osigurala zbirka povezanih funkcionalnosti.
16. Koje modifikatore pristupa podržava TypeScript?
Sljedeći su primjeri kako se javni, privatni i zaštićeni modifikatori pristupa u TypeScriptu mogu koristiti za kontrolu pristupačnosti člana klase:
- Javno – pristup je dostupan svakom članu klase, svim njenim klasama potomcima i svakoj instanci klase.
- Zaštićeni – dostupni su svakom članu klase i svim njenim podklasama. Međutim, instanca klase ne može pristupiti.
- Privatni pristup njima ograničen je samo na članove razreda.
Budući da je JavaScript praktičan, ako modifikator pristupa nije dan, pretpostavlja se da je javan.
17. Dopušta li TypeScript preopterećenje funkcija?
Da, TypeScript podržava preopterećenje funkcija. Ali sada je to što se radi čudno. Stoga, kod preopterećenja s TypeScriptom, postoji samo jedna implementacija s 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 bilo koji, sadrži stvarnu implementaciju.
Implementacija zatim određuje vrstu dostavljenog parametra i pokreće zaseban odjeljak koda u skladu s tim određivanjem.
18. Kako TypeScript dopušta neobavezne argumente u funkcijama?
Suprotno JavaScriptu, ako pokušate pozvati funkciju bez navođenja točne količine i vrste parametara kao što je navedeno u potpisu funkcije, TypeScript prevoditelj će javiti pogrešku.
Možete upotrijebiti neobavezne parametre korištenjem simbola upitnika ('?') kako biste zaobišli ovaj problem. Pokazuje da se opcijski parametri mogu označiti dodavanjem znaka “?” onima koji mogu ili ne moraju primiti vrijednost.
19. Kako se var, let i const međusobno razlikuju?
TypeScript nudi tri različita načina za deklariranje varijable, svaki s predloženom primjenom.
je: deklarira globalnu varijablu ili varijablu opsega funkcije s ponašanjem JavaScript-ovih var varijabli i smjernicama za opseg. Varijable ne trebaju biti postavljene njihove vrijednosti kada su deklarirane.
neka: deklarira blok varijablu s lokalnim opsegom. Neka varijable ne trebaju vrijednost varijable za postavljanje kada su deklarirane. Pojam "lokalna varijabla s opsegom bloka" odnosi se na varijablu kojoj se može pristupiti samo unutar bloka u kojem se nalazi, kao što je funkcija, blok if/else ili petlja. Neka se varijable ne mogu čitati ili pisati prije nego što su 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 se inicijalizirati prije nego što se deklariraju. Za varijable koje ostaju konstantne tijekom cijelog svog postojanja, ovo je optimalno.
20. U TypeScriptu opišite dekoratore?
Pristupnik, svojstvo, parametar, klasa, funkcija ili dekorator mogu se deklarirati na određeni način kao dekoratori. Dekoratori su funkcije s prefiksom @expression koje će se pozvati tijekom izvođenja s pojedinostima o dekoriranoj deklaraciji.
Izraz mora procijeniti funkciju kako bi dekorateri radili.
TypeScript dekoratori pružaju cilj deklarativnog dodavanja zabilješki i informacija trenutnom kodu.
U našoj datoteci tsconfig.json ili u naredbenom retku morate aktivirati opciju prevoditelja experimentalDecorators kako biste omogućili eksperimentalnu podršku za dekoratore:
21. Što Mixins znače u TypeScriptu?
Miksini su tehnika stvaranja klasa iz dijelova koji se mogu ponovno koristiti u Javascriptu i miješanja djelomičnih klasa za stvaranje složenijih potpunih klasa.
Koncept je jednostavan: funkcija B prihvaća klasu A i vraća novu klasu s dodanom funkcionalnošću, za razliku od klase A koja proširuje klasu B kako bi dobila svoju funkcionalnost. Funkcija B u ovom slučaju je mixin.
22. Što su zapravo pseudonimi tipa u TypeScriptu?
Pseudonimi tipa mijenjaju naziv tipa. Pseudonimi tipa, poput sučelja, mogu se koristiti za imenovanje primitiva, unija, torki i bilo kojih drugih tipova koji bi se inače morali definirati ručno.
Aliasing ne stvara novi tip; nego mijenja naziv postojećeg tipa. Preslikavanje primitive nije baš praktično, iako može biti korisno za dokumentaciju.
Pseudonimi tipa, poput sučelja, mogu biti univerzalni; sve što trebate učiniti je dodati parametre tipa i koristiti ih na desnoj strani deklaracije aliasa.
23. Što znači pojam "varijabla opsega"?
JavaScript podržava lokalne i globalne varijable opsega. Opseg je skup objekata, varijabli i funkcija.
Primjer deklaracije 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 što se točno koristi noImplicitAny?
Tretman TypeScript prevoditelja implicitnih bilo kakvih tipova vašeg projekta mijenja se svojstvom noImplicitAny u konfiguracijskoj datoteci tsconfig.json za TypeScript projekte.
Oznaka noImplicitAny može se postaviti na true ili false i uvijek se može promijeniti nakon inicijalizacije. S obzirom na to da je svaki projekt jedinstven, ne postoji točan ili pogrešan odgovor koliki bi taj broj trebao biti.
Razumijevanje razlika između stanja uključenosti i isključenosti zastavice može vam pomoći da odaberete koju ćete postavku koristiti za zastavicu.
Prevodilac ne određuje tip varijable na temelju načina na koji se koristi ako je oznaka noImplicitAny postavljena na false (zadano). Tip je umjesto toga postavljen na bilo koji od strane kompajlera.
Međutim, ako je opcija noImplicitAny postavljena na true, kompajler će se potruditi zaključiti tip i javit će pogrešku vremena kompajliranja ako to ne može učiniti.
25. Kako se tipovi spoja i križanja međusobno razlikuju?
Umjesto generiranja novih vrsta od nule, unije i tipovi križanja omogućuju vam sastavljanje i miješanje postojećih tipova. I unija i raskrižje 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 unije. Popis tipova koji će se koristiti u novom tipu podijeljen je pomoću | (okomita crta) simbol u vrstama sindikata.
Pogledajmo ilustraciju:
S druge strane, raskrižje je definirano kao tip koji spaja mnoge tipove u jedan, integrirajući sve značajke svakog tipa kako bi se formirao novi tip. Popis vrsta koje će se spojiti podijeljen je na sjecišta pomoću simbola &.
Pogledajmo ilustraciju:
26. Kako definirate TypeScript Declare Keyword?
Nema TypeScript deklaracijskih datoteka u JavaScript bibliotekama ili okvirima. Međutim, morate upotrijebiti ključnu riječ declare kako biste ih upotrijebili u TypeScript datoteci bez nailaska na pogreške kompilacije.
Kada želite navesti varijablu koja bi već mogla postojati negdje drugdje, koristite ključnu riječ declare u deklaracijama i metodama okruženja.
27. Što su generici u TypeScriptu?
Alat pod nazivom TypeScript Generics nudi metodu za proizvodnju dijelova za višekratnu upotrebu. Umjesto da radi samo s jednim oblikom podataka, može razviti komponente koje mogu raditi s nizom vrsta podataka.
Osim toga, nudi sigurnost tipa bez žrtvovanja učinkovitosti ili produktivnosti. Zahvaljujući genericima možemo izgraditi generičke klase, generičke funkcije, generičke metode i generička sučelja.
Generici su visoko tipizirane zbirke budući da je parametar tipa napisan između otvorenih () i zatvorenih (>) zagrada. Koristi jedinstvenu vrstu varijable tipa koja se zove T koja označava tipove.
28. Što JSX znači u TypeScriptu?
JSX je legitiman JavaScript koji se može pretvoriti iz sintakse slične XML-u koja se može ugraditi. Zajedno s okvirom React, JSX je stekao popularnost.
TypeScript podržava izravnu kompilaciju, provjeru tipa i ugradnju JSX-a u JavaScript. Datoteci morate dati ekstenziju a.tsx i aktivirati opciju JSX ako je želite koristiti.
29. Što su TypeScript ambijenti i kada ih trebam koristiti?
Prevoditelj je obaviješten o stvarnom izvornom kodu koji se nalazi negdje drugdje putem ambijentalnih deklaracija.
Pokvarit će se bez prethodne obavijesti ako pokušamo upotrijebiti ove izvorne kodove tijekom izvođenja, ali oni nisu prisutni. Datoteke nalik dokumentima su datoteke deklaracija ambijenta.
Ako se izvor promijeni, dokumentacija se mora ažurirati, a ako se datoteka deklaracije ambijenta ne promijeni, doći će do problema s kompajlerom.
Osim toga, omogućuje nam da iskoristimo dobro poznate JavaScript biblioteke koje se već široko koriste, kao što su jQuery, AngularJS, NodeJS itd.
30. Što mislite pod apstraktnom klasom u TypeScriptu?
Apstraktne klase definiraju objektni ugovor bez dopuštanja izravne instancije objekta. Međutim, apstraktna klasa također može ponuditi informacije o implementaciji svog člana.
Jedan ili više apstraktnih članova može se pronaći u apstraktnoj klasi. Apstraktni članovi nadklase tada moraju imati implementaciju koju osiguravaju bilo koje klase koje proširuju apstraktnu klasu.
Pogledajmo TypeScript primjer apstraktne klase i kako bi je druga klasa mogla proširiti. Iako i klasa Car i klasa Bike u donjem primjeru proširuju klasu Vehicle, svaka implementira funkciju drive() na jedinstven način.
31. Što je točno TypeScript Map datoteka?
Datoteka izvorne karte koja se zove TypeScript Map datoteka sadrži podatke o našim izvornim datotekama. Datoteke izvorne mape ili .map datoteke omogućuju alatima mapiranje između JavaScript koda koji je izlaz i TypeScript izvornih datoteka koje su ga proizvele.
Dodatno, te datoteke mogu iskoristiti programi za ispravljanje pogrešaka, što nam omogućuje ispravljanje pogrešaka u TypeScript datoteci umjesto u JavaScript datoteci.
32. Što su tipske tvrdnje u TypeScriptu?
Iako tvrdnja o tipu funkcionira slično kao i prepisivanje tipa u drugim jezicima kao što su C# i Java, ona ne provodi provjeru tipa niti preuređivanje podataka.
Iako tvrdnja tipa nema utjecaja na vrijeme izvođenja, pretvaranje tipa nudi ovu podršku. Tvrdnje tipa, s druge strane, koristi samo kompilator i daju smjernice o tome kako želimo da naš kod bude ispitan.
Zaključak
Zaključno, nadamo se da će vam ova pitanja o TypeScript intervjuu biti od pomoći, bilo da ste programer koji se sprema na razgovor za posao ili menadžer za zapošljavanje koji pokušava pronaći najboljeg kandidata.
Ne zaboravite da proces zapošljavanja uključuje više od tehničke stručnosti. Kako biste bili sigurni da ćete pronaći (ili locirati odgovarajućeg kandidata za) posao, prošla iskustva i meke vještine jednako su ključni.
Mnoga pitanja za TypeScript intervju su otvorena i nemaju niti jedan točan odgovor, pa imajte to na umu.
Anketare zanima obrazloženje iza vaših odgovora.
Uvijek budite spremni za dodatna pitanja koja će vam objasniti kako ste došli do odgovora. Opišite svoj misaoni proces.
Ostavi odgovor