Innehållsförteckning[Dölj][Visa]
- 1. Vad är TypeScript exakt och hur skiljer det sig från JavaScript?
- 2. Vilka är några anmärkningsvärda egenskaper hos TypeScript?
- 3. Vilka är några fördelar med att använda TypeScript?
- 4. Vilka är några nackdelar med att använda TypeScript?
- 5. Vilka exakt är TypeScripts komponenter?
- 6. Kan du förklara gränssnitt i TypeScript?
- 7. Vad är variabler i TypeScript och hur deklareras de på olika sätt?
- 8. Hur kan en delmängd av ett gränssnitt användas för att generera en ny typ?
- 9. Vad menar du med "alla" typer, och när ska jag använda dem?
- 10. Hur är TypeScript ett språk med valfri statiskt skriven syntax?
- 11. Vad betyder moduler i TypeScript?
- 12. Hur fungerar "enums" i TypeScript?
- 13. Vad skiljer en intern modul från en extern modul?
- 14. Vad betyder TypeScripts anonyma funktion?
- 15. Vad är ett namnutrymme i TypeScript och hur deklarerar man ett?
- 16. Vilka åtkomstmodifierare stöder TypeScript?
- 17. Tillåter TypeScript överbelastning av funktioner?
- 18. Hur tillåter TypeScript valfria argument i funktioner?
- 19. Hur varierar var, låt och const från varandra?
- 20. Beskriv dekoratörer i TypeScript?
- 21. Vad betyder Mixins i TypeScript?
- 22. Vad exakt är typalias i TypeScript?
- 23. Vad betyder termen "Omfattningsvariabel"?
- 24. Vad exakt används noImplicitAny till?
- 25. Hur varierar förenings- och korsningstyper från varandra?
- 26. Hur definierar du ett TypeScript-deklarera nyckelord?
- 27. Vad är generika i TypeScript?
- 28. Vad betyder JSX i TypeScript?
- 29. Vad är TypeScript Ambients och när ska jag använda dem?
- 30. Vad menar du med abstrakt klass i TypeScript?
- 31. Vad exakt är en TypeScript Map-fil?
- 32. Vad är typpåståenden i TypeScript?
- Slutsats
Microsoft utvecklade och fortsätter att stödja programmeringsspråket TypeScript. Med tillägget av statisk typning som ett alternativ är det en syntaktisk superset av JavaScript.
Storskaligt applikationsutvecklingsspråk TypeScript kompilerar JavaScript. Eftersom TypeScript är en superuppsättning av JavaScript, är program skrivna i JavaScript också giltiga i TypeScript.
Här är en omfattande lista över de mest typiska intervjufrågorna och svaren för TypeScript-utvecklare om du deltar i en.
1. Vad är TypeScript exakt och hur skiljer det sig från JavaScript?
En superuppsättning av JavaScript, TypeScript kompilerar till standard JavaScript. Ur en konceptuell synvinkel liknar TypeScript och JavaScript SASS och CSS.
Med andra ord är TypeScript ES6 JavaScript med några fler funktioner. JavaScript är ett skriptspråk mer besläktat med Python, medan TypeScript är ett objektorienterat, statiskt skrivet språk jämförbart med Java och C#.
Klasser och gränssnitt är alla en del av TypeScripts objektorienterade design, och typinferens är ett av de många tillgängliga verktygen tack vare dess statiska typning.
JavaScript skrivs i en fil med filtillägget .js, medan TypeScript skrivs i en fil med filtillägget .ts.
I motsats till JavaScript kan TypeScript-kod inte köras direkt i en webbläsare eller på någon annan plattform och förstås inte av webbläsare. Målplattformen kommer sedan att köra det vanliga JavaScriptet som skapades från .ts-filerna med hjälp av TypeScripts transpiler.
2. Vilka är några anmärkningsvärda egenskaper hos TypeScript?
- Statisk typning är en funktion i TypeScript som underlättar typkontroll under kompilering. Så även utan att köra skriptet kan du upptäcka fel i koden när du skriver den.
- DOM kan ändras med TypeScript för att lägga till eller ta bort objekt.
- Alla operativsystem, inklusive Windows, macOS och Linux, kan ha TypeScript-kompilatorn installerad.
- Klasser, gränssnitt och moduler är några av funktionerna som erbjuds av TypeScript. Den kan alltså skapa objektorienterad kod för utveckling på både klientsidan och serversidan.
- Majoriteten av funktionerna i ECMAScript 2015 (ES 6, 7) är redan inkluderade i TypeScript, inklusive klass, gränssnitt, pilfunktioner, etc.
- Om du använder JavaScripts dynamiska skrivning, stöder TypeScript även valfri statisk skrivning.
3. Vilka är några fördelar med att använda TypeScript?
- Vilken JavaScript-motor eller webbläsare som helst kan köra TypeScript eftersom det är snabbt, lätt att lära sig och körs snabbt.
- Den delar samma syntax och semantik som JavaScript.
- Detta underlättar snabbare skrivning av frontend-kod av backend-utvecklare.
- Den innehåller ES6- och ES7-funktioner som kan funktion i JavaScript ES5-motorer som Node.js.
- Befintliga JavaScript-bibliotek som Jquery, D3.js, etc. stöds via definitionsfilen, som har tillägget.d.ts.
- Ett JavaScript-skript som redan finns kan anropa TypeScript-koden. Den integreras också sömlöst med nuvarande JavaScript-ramverk och bibliotek.
4. Vilka är några nackdelar med att använda TypeScript?
- Kodning med TypeScript kräver en lång kompileringsprocess.
- Det stöder inte klasser som är abstrakta.
- Typdefinitionsfilernas kvalitet är ett problem.
- Alla tredjepartsbibliotek måste ha en definitionsfil för att kunna användas.
- Ett kompileringssteg är nödvändigt för att konvertera TypeScript till JavaScript om vi vill köra TypeScript-applikationen i webbläsaren.
- JavaScript har använts av webbutvecklare i många år, och TypeScript ger inget nytt.
5. Vilka exakt är TypeScripts komponenter?
I TypeScript finns det tre huvudkategorier av komponenter, inklusive:
- Språk: Den innehåller kommentarer för typen, nyckelord och syntax.
- TypeScript-kompilator: TypeScript-instruktionerna översätts till JavaScript av den här kompilatorn (tsc).
- TypeScript språktjänst: Språktjänsten erbjuder redaktörsliknande appar som ett andra lager ovanpå den grundläggande kompileringsprocessen. Standarduppsättningen vanliga redigeringsoperationer stöds av språktjänsten.
6. Kan du förklara gränssnitt i TypeScript?
TypeScript använder gränssnitt för att specificera syntaxen för entiteter. Med andra ord kan dataformer som objekt eller en rad objekt beskrivas med hjälp av gränssnitt. Gränssnittsnyckelordet, gränssnittsnamnet och dess definition används för att deklarera gränssnitt. Låt oss undersöka ett användarobjekts grundläggande gränssnitt.
Typen av en variabel kan sedan ställas in med hjälp av gränssnittet (liknande hur du tilldelar primitiva typer till en variabel). Egenskaperna för gränssnittet kommer då att uppfyllas av en variabel av användartypen.
Ditt TypeScript-projekt drar nytta av gränssnitt eftersom de ger enhetlighet. Dessutom förbättrar gränssnitt ditt projekts verktyg genom att förbättra IDE-autokompletteringsfunktionerna och garanterar att rätt värden levereras till konstruktörer och metoder.
7. Vad är variabler i TypeScript och hur deklareras de på olika sätt?
En variabel är ett specifikt utpekat minnesområde som används för att hålla värden. Ett kolon (:) placeras efter variabelnamnet och följs av typen när en variabel deklareras i TypeScript. Vi deklarerar variabler med nyckelordet var, precis som i JavaScript.
Vissa riktlinjer måste följas när en variabel deklareras i Typescript:
- Namnet kan inte börja med en siffra.
- Variabelnamnet måste innehålla bokstäver eller siffror.
- Dollarsymbolen ($) och understreck (_) är de enda specialtecknen som är tillåtna i detta fält.
8. Hur kan en delmängd av ett gränssnitt användas för att generera en ny typ?
Genom att tillhandahålla en befintlig typ eller gränssnitt och välja de nycklar som ska uteslutas från den nya typen, kan du skapa en ny typ i TypeScript med hjälp av verktygstypen utelämna.
Exemplet som följer visar hur man konstruerar en ny typ som heter UserPreview som är baserad på användargränssnittet men som exkluderar e-postegenskapen.
9. Vad menar du med "alla" typer, och när ska jag använda dem?
Ibland behöver du spara ett värde i en variabel, men du är osäker på vilken typ av variabel på förhand. Värdet kan till exempel härröra från användarinmatning eller en API-begäran. Du kan ge vilken typ av värde som helst till en variabeltyp genom att använda "vilken som helst".
När en variabels typ inte är explicit specificerad och kompilatorn inte kan bestämma den utifrån sammanhanget, tror TypeScript att variabeln är av typen någon.
10. Hur är TypeScript ett språk med valfri statiskt skriven syntax?
Det är möjligt att instruera kompilatorn att bortse från en variabels typ i TypeScript eftersom den valfritt är statiskt typad. Vilken datatyp som helst kan användas för att tilldela variabeln vilken typ av värde som helst. När det kompileras kommer TypeScript inte att tillhandahålla någon felkontroll.
11. Vad betyder moduler i TypeScript?
Det är effektivt att gruppera relevanta variabler, funktioner, klasser, gränssnitt etc. med hjälp av moduler. Den kan användas, men inte i det globala omfånget, bara inom sitt eget omfång.
I huvudsak kan en moduls definierade variabler, funktioner, klasser och gränssnitt inte nås direkt från utsidan av modulen.
Nyckelordet export kan användas för att bygga en modul, medan nyckelordet import kan användas för att inkludera en modul i en annan modul.
12. Hur fungerar "enums" i TypeScript?
En metod för att definiera en samling namngivna konstanter är att använda uppräkningar eller uppräknade typer. Dessa datastrukturer har en fast längd och en samling fasta värden.
När du representerar en samling alternativ för ett givet värde i TypeScript, används enums ofta för att beskriva möjligheterna med en uppsättning nyckel/värdepar.
Låt oss se en illustration av en uppräkning som används för att tillhandahålla en mängd olika användartyper.
Enums konverteras internt till vanliga JavaScript-objekt av TypeScript efter kompilering. Användningen av enums är därför att föredra framför användningen av flera separata konstvariabler.
Din kod är typsäker och lättare att förstå på grund av den gruppering som uppräkningarna tillhandahåller.
13. Vad skiljer en intern modul från en extern modul?
Intern modul:
- Interna moduler var ett inslag i Typescripts tidigare iteration.
- Namnet och huvuddelen av interna moduler definieras med ModuleDeclarations.
- Dessa är medlemmar i andra moduler som är lokala eller exporterade.
- Klasser, gränssnitt, funktioner och variabler är grupperade i interna moduler, som kan exporteras till en annan modul.
Extern modul:
- I den senaste versionen kallas externa moduler för moduler.
- En separat källfil känd som en extern modul används för att skapa dem, och var och en har minst en import- eller exportdeklaration.
- I den senaste versionen kallas externa moduler för moduler.
- Moduldefinitionernas interna uttalanden kan döljas med hjälp av externa moduler, vilket gör att bara metoderna och argumenten kopplade till den definierade variabeln är synliga.
14. Vad betyder TypeScripts anonyma funktion?
Funktioner som klassificeras som anonyma saknar funktionsnamn som identifierare. Dessa rutiner definieras dynamiskt under körning. Liksom vanliga funktioner kan anonyma funktioner ta input och ge resultat.
En anonym funktion är vanligtvis oåtkomlig när den väl har skapats. Variabler kan tilldelas en anonym funktion.
15. Vad är ett namnutrymme i TypeScript och hur deklarerar man ett?
Namnutrymme grupperar logiskt funktioner. Dessa bevarar internt typskriptets äldre kod. Den omfattar egenskaper och saker med speciella kopplingar.
Ett annat namn för ett namnområde är en intern modul. Gränssnitt, klasser, funktioner och variabler kan alla inkluderas i ett namnområde för att tillhandahålla en samling ansluten funktionalitet.
16. Vilka åtkomstmodifierare stöder TypeScript?
Följande är exempel på hur de offentliga, privata och skyddade åtkomstmodifierarna i TypeScript kan användas för att kontrollera en klassmedlems tillgänglighet:
- Offentlig – Tillgång är tillgänglig för alla medlemmar i klassen, alla dess underklasser och varje förekomst av klassen.
- Skyddade – De är tillgängliga för alla medlemmar i klassen och alla dess underklasser. En klassinstans kan dock inte komma åt.
- Privat - Tillgång till dem är begränsad till endast klassmedlemmar.
Eftersom JavaScript är praktiskt, om en åtkomstmodifierare inte ges, antas den vara offentlig.
17. Tillåter TypeScript överbelastning av funktioner?
Ja, funktionsöverbelastning stöds av TypeScript. Men nu det görs är konstigt. Därför, vid överbelastning med TypeScript, finns det bara en implementering med en mängd olika signaturer.
Medan den andra signaturen innehåller en parameter av typtext, har den första signaturen bara en parameter med typnummer. Den tredje funktionen, som inkluderar ett argument av typen any, innehåller den faktiska implementeringen.
Implementeringen bestämmer sedan typen av den tillhandahållna parametern och kör en separat kodsektion i enlighet med denna bestämning.
18. Hur tillåter TypeScript valfria argument i funktioner?
I motsats till JavaScript, om du försöker anropa en funktion utan att specificera den exakta mängden och typen av parametrar som anges i dess funktionssignatur, kommer TypeScript-kompilatorn att visa ett fel.
Du kan använda valfria parametrar genom att använda frågetecknet ('?') för att komma runt problemet. Det visar att valfria parametrar kan betecknas genom att lägga till ett "?" till dem som får eller inte får ett värde.
19. Hur varierar var, låt och const från varandra?
Tre olika sätt att deklarera en variabel erbjuds av TypeScript, vart och ett med ett föreslaget program.
var: Deklarerar en global eller funktionsomfattande variabel med JavaScripts var-variablers beteende och riktlinjer för omfattning. Variabler behöver inte ställas in när de deklareras.
låta: deklarerar en blockvariabel med lokal omfattning. Låt variabler behöver inte en variabels värde för att ställas in när de deklareras. Termen "block-scoped lokal variabel" hänvisar till en variabel som endast kan nås från insidan av blocket där den finns, såsom en funktion, ett if/else-block eller en loop. Låt variabler kan inte läsas från eller skrivas till innan de deklareras, till skillnad från var.
const: Deklarerar ett värde för en konstant med blockomfattning som inte kan ändras efter att den har initierats. Konstvariabler måste initieras innan de deklareras. För variabler som förblir konstanta under hela sin existens är detta optimalt.
20. Beskriv dekoratörer i TypeScript?
En accessor, egenskap, parameter, klass, funktion eller dekoratör kan alla deklareras på ett specifikt sätt som dekoratörer. Dekoratörer är funktioner med prefixet @expression som kommer att anropas under körning med detaljer om den dekorerade deklarationen.
Uttrycket måste utvärdera en funktion för att dekoratörer ska fungera.
TypeScript Decorators tillhandahåller målet att deklarativt lägga till kommentarer och information till den aktuella koden.
I vår tsconfig.json-fil eller på kommandoraden måste du aktivera kompilatoralternativet experimentalDecorators för att aktivera experimentellt stöd för dekoratörer:
21. Vad betyder Mixins i TypeScript?
Mixins är en teknik för att skapa klasser från återanvändbara delar i Javascript och blanda partiella klasser för att skapa mer komplexa fullständiga klasser.
Konceptet är okomplicerat: funktion B accepterar klass A och returnerar en ny klass med dess funktionalitet tillagd, i motsats till klass A som utökar klass B för att få dess funktionalitet. Funktion B i detta fall är en mixin.
22. Vad exakt är typalias i TypeScript?
Typalias ändrar namnet på en typ. Typalias, som gränssnitt, kan användas för att namnge primitiver, fackföreningar, tupler och alla andra typer som annars skulle behöva definieras för hand.
Aliasing skapar inte en ny typ; istället ändrar den namnet på en befintlig typ. Att aliasa en primitiv är inte riktigt praktiskt, även om det kan vara fördelaktigt för dokumentation.
Typalias, som gränssnitt, kan vara universella; allt du behöver göra är att lägga till typparametrar och använda dem på aliasdeklarationens högra sida.
23. Vad betyder termen "Omfattningsvariabel"?
JavaScript stöder både lokala och globala omfångsvariabler. Omfattningen är en samling av objekt, variabler och funktioner.
Ett exempel på att deklarera en variabel i två omfång är:
- Variabel med lokalt omfattning – Det fungerar som ett funktionsobjekt för användning inom funktioner.
- Variabel med globalt omfång – Detta fönsterobjekt kan användas både inom och utanför funktioner
24. Vad exakt används noImplicitAny till?
TypeScript-kompilatorns behandling av ditt projekts implicita alla typer ändras av egenskapen noImplicitAny i tsconfig.json-konfigurationsfilen för TypeScript-projekt.
NoImplicitAny-flaggan kan ställas in på true eller false och är alltid ändringsbar efter initialisering. Med tanke på att varje projekt är unikt finns det inget rätt eller fel svar på vad detta nummer ska vara.
Att förstå skillnaderna mellan flaggans på- och avlägen kan hjälpa dig att välja vilken inställning som ska användas för flaggan.
Kompilatorn bestämmer inte typen av en variabel baserat på hur den används om flaggan noImplicitAny är inställd på false (standard). Typen är istället inställd på valfri som standard av kompilatorn.
Men om alternativet noImplicitAny är satt till true, kommer kompilatorn att göra ett försök att sluta sig till typen och kommer att skapa ett kompileringsfel om den inte kan göra det.
25. Hur varierar förenings- och korsningstyper från varandra?
Istället för att skapa nya sorter från grunden, låter fackföreningar och skärningstyper dig komponera och blanda befintliga typer. Både union och korsning har distinkta egenskaper som gör dem perfekta för vissa användningsfall.
En typ som kan vara en av flera slag kallas för en föreningstyp. Listan över typer som kommer att användas i den nya typen är uppdelad med hjälp av | (vertikal streck) symbol i fackföreningstyper.
Låt oss titta på en illustration:
Å andra sidan definieras skärningspunkten som en typ som slår samman många typer till en, som integrerar alla funktioner för varje typ för att bilda en ny typ. Listan över typer som kommer att slås samman är uppdelad i korsningar med &-symbolen.
Låt oss undersöka en illustration:
26. Hur definierar du ett TypeScript-deklarera nyckelord?
Det finns inga TypeScript-deklarationsfiler i JavaScript-bibliotek eller ramverk. Du måste dock använda nyckelordet declare för att kunna använda dem i TypeScript-filen utan att stöta på några kompileringsfel.
När du vill specificera en variabel som redan kan finnas någon annanstans använder du nyckelordet declare i omgivande deklarationer och metoder.
27. Vad är generika i TypeScript?
Ett verktyg som heter TypeScript Generics erbjuder en metod för att producera återanvändbara delar. Istället för att bara arbeta med en form av data kan den utveckla komponenter som kan fungera med en rad olika datatyper.
Dessutom erbjuder den typsäkerhet utan att offra effektivitet eller produktivitet. Vi kan bygga generiska klasser, generiska funktioner, generiska metoder och generiska gränssnitt tack vare generika.
Generika är högskrivna samlingar eftersom en typparameter skrivs mellan öppna () och stängda (>) parenteser. Den använder sig av en unik typ av typvariabel som kallas T som står för typer.
28. Vad betyder JSX i TypeScript?
JSX är ett legitimt JavaScript som kan konverteras från en inbäddningsbar XML-liknande syntax. Tillsammans med React-ramverket blev JSX populär.
Direkt kompilering, typverifiering och inbäddning av JSX i JavaScript stöds av TypeScript. Du måste ge din fil a.tsx-tillägget och aktivera JSX-alternativet om du vill använda det.
29. Vad är TypeScript Ambients och när ska jag använda dem?
Kompilatorn informeras om den verkliga källkoden som finns någon annanstans genom omgivningsdeklarationer.
Det kommer att gå sönder utan föregående meddelande om vi försöker använda dessa källkoder under körning men de är inte närvarande. Dokumentliknande filer är omgivande deklarationsfiler.
Om källan ändras måste dokumentationen uppdateras och kompilatorproblem uppstår om den omgivande deklarationsfilen inte ändras.
Dessutom ger det oss möjlighet att utnyttja välkända JavaScript-bibliotek som redan används i stor utsträckning, såsom jQuery, AngularJS, NodeJS, etc.
30. Vad menar du med abstrakt klass i TypeScript?
Abstrakta klasser definierar ett objekts kontrakt utan att tillåta direkt objektinstansiering. Men en abstrakt klass kan också erbjuda sin medlems implementeringsinformation.
En eller flera abstrakta medlemmar kan hittas i en abstrakt klass. De abstrakta medlemmarna i superklassen måste sedan ha en implementering som tillhandahålls av alla klasser som utökar den abstrakta klassen.
Låt oss ta en titt på ett TypeScript-exempel på en abstrakt klass och hur en annan klass kan utöka den. Även om både bil- och cykelklasserna i exemplet nedan utökar fordonsklassen, implementerar de var och en drive()-funktionen på ett unikt sätt.
31. Vad exakt är en TypeScript Map-fil?
En källkartafil som kallas en TypeScript Map-fil innehåller data om våra originalfiler. Källkartfilerna, eller .map-filerna, tillåter verktyg att mappa mellan JavaScript-koden som matas ut och TypeScript-källfilerna som producerade den.
Dessutom kan dessa filer konsumeras av debuggers, vilket gör att vi kan felsöka TypeScript-filen snarare än JavaScript-filen.
32. Vad är typpåståenden i TypeScript?
Medan typbekräftelse fungerar på samma sätt som typcasting på andra språk som C# och Java, utför den inte typverifiering eller omarrangering av data.
Även om typbekräftelse inte har någon effekt på körtiden, erbjuder typcasting detta stöd. Typpåståenden, å andra sidan, används endast av kompilatorn och ger vägledning om hur vi vill att vår kod ska granskas.
Slutsats
Sammanfattningsvis hoppas vi att dessa TypeScript-intervjufrågor kommer att vara till hjälp för dig, oavsett om du är en utvecklare som gör sig redo för en anställningsintervju eller en anställningschef som försöker hitta den bästa sökanden.
Kom ihåg att rekryteringsprocessen involverar mer än bara teknisk expertis. För att säkerställa att du får (eller hittar rätt sökande för) jobbet är tidigare erfarenheter och mjuka färdigheter lika avgörande.
Många TypeScript-intervjufrågor är öppna och har inte ett enda rätt svar, så tänk på det.
Intervjuare är intresserade av logiken bakom dina svar.
Var alltid redo för uppföljningsförfrågningar som förklarar hur du kom fram till ditt svar. Beskriv din tankeprocess.
Kommentera uppropet