Indholdsfortegnelse[Skjule][At vise]
- 1. Hvad er TypeScript helt præcist, og hvordan adskiller det sig fra JavaScript?
- 2. Hvad er nogle bemærkelsesværdige funktioner ved TypeScript?
- 3. Hvad er nogle fordele ved at bruge TypeScript?
- 4. Hvad er nogle ulemper ved at bruge TypeScript?
- 5. Hvad er TypeScripts komponenter helt præcist?
- 6. Kan du forklare grænseflader i TypeScript?
- 7. Hvad er variabler i TypeScript, og hvordan erklæres de på forskellige måder?
- 8. Hvordan kan en delmængde af en grænseflade bruges til at generere en ny type?
- 9. Hvad mener du med 'enhver' typer, og hvornår skal jeg bruge dem?
- 10. Hvordan er TypeScript et sprog med valgfri statisk skrevet syntaks?
- 11. Hvad betyder moduler i TypeScript?
- 12. Hvordan fungerer "enums" i TypeScript?
- 13. Hvad adskiller et internt modul fra et eksternt modul?
- 14. Hvad betyder TypeScripts anonyme funktion?
- 15. Hvad er et navneområde i TypeScript, og hvordan erklærer man et?
- 16. Hvilke adgangsmodifikatorer understøtter TypeScript?
- 17. Tillader TypeScript funktionsoverbelastning?
- 18. Hvordan tillader TypeScript valgfrie argumenter i funktioner?
- 19. Hvordan varierer var, lad og const fra hinanden?
- 20. Beskriv dekoratører i TypeScript?
- 21. Hvad betyder Mixins i TypeScript?
- 22. Hvad er typealiaser præcist i TypeScript?
- 23. Hvad betyder udtrykket "Scope variabel"?
- 24. Hvad bruges noImplicitAny præcist til?
- 25. Hvordan varierer forenings- og krydstyper fra hinanden?
- 26. Hvordan definerer du et TypeScript-deklarationsnøgleord?
- 27. Hvad er generika i TypeScript?
- 28. Hvad betyder JSX i TypeScript?
- 29. Hvad er TypeScript Ambients, og hvornår skal jeg bruge dem?
- 30. Hvad mener du med abstrakt klasse i TypeScript?
- 31. Hvad er en TypeScript Map-fil præcist?
- 32. Hvad er typepåstande i TypeScript?
- Konklusion
Microsoft udviklede og understøtter fortsat TypeScript-programmeringssproget. Med tilføjelsen af statisk indtastning som en mulighed er det et syntaktisk supersæt af JavaScript.
Storstilet applikationsudviklingssprog TypeScript kompilerer JavaScript. Da TypeScript er et supersæt af JavaScript, er programmer skrevet i JavaScript også gyldige i TypeScript.
Her er en omfattende liste over de mest typiske TypeScript-udviklerinterviewspørgsmål og svar, hvis du deltager i et.
1. Hvad er TypeScript helt præcist, og hvordan adskiller det sig fra JavaScript?
Et supersæt af JavaScript, TypeScript kompilerer til standard JavaScript. Fra et konceptuelt synspunkt ligner TypeScript og JavaScript SASS og CSS.
Med andre ord er TypeScript ES6 JavaScript med et par flere muligheder. JavaScript er et scriptsprog mere beslægtet med Python, hvorimod TypeScript er et objektorienteret, statisk skrevet sprog, der kan sammenlignes med Java og C#.
Klasser og grænseflader er alle en del af TypeScripts objektorienterede design, og typeinferens er et af de mange tilgængelige værktøjer takket være dens statiske skrivning.
JavaScript er skrevet i en fil med filtypenavnet .js, hvorimod TypeScript er skrevet i en fil med filtypenavnet .ts.
I modsætning til JavaScript kan TypeScript-kode ikke køres direkte i en browser eller på nogen anden platform og forstås ikke af browsere. Målplatformen vil derefter køre det almindelige JavaScript, der blev genereret fra .ts-filerne ved hjælp af TypeScripts transpiler.
2. Hvad er nogle bemærkelsesværdige funktioner ved TypeScript?
- Statisk indtastning er en funktion af TypeScript, der hjælper med typekontrol under kompilering. Så selv uden at udføre scriptet, kan du opdage fejl i koden, mens du skriver den.
- DOM kan ændres ved hjælp af TypeScript for at tilføje eller fjerne elementer.
- Ethvert operativsystem, inklusive Windows, macOS og Linux, kan have TypeScript-kompileren installeret.
- Klasser, grænseflader og moduler er nogle af de funktioner, der tilbydes af TypeScript. Det kan således skabe objektorienteret kode til både klient- og server-side udvikling.
- Størstedelen af funktionerne i ECMAScript 2015 (ES 6, 7) er allerede inkluderet i TypeScript, inklusive klasse, interface, pilefunktioner osv.
- Hvis du bruger JavaScripts dynamiske indtastning, understøtter TypeScript også valgfri statisk indtastning.
3. Hvad er nogle fordele ved at bruge TypeScript?
- Enhver JavaScript-motor eller browser kan udføre TypeScript, da den er hurtig, nem at lære og kører hurtigt.
- Det deler samme syntaks og semantik som JavaScript.
- Dette letter den hurtigere skrivning af frontend-kode af backend-udviklere.
- Den inkorporerer ES6- og ES7-funktioner, der kan funktion i JavaScript ES5-motorer som Node.js.
- Eksisterende JavaScript-biblioteker som Jquery, D3.js osv. understøttes via Definition-filen, som har filtypenavnet.d.ts.
- Et JavaScript-script, der allerede eksisterer, kan kalde TypeScript-koden. Det integreres også problemfrit med aktuelle JavaScript-rammer og biblioteker.
4. Hvad er nogle ulemper ved at bruge TypeScript?
- Kodning med TypeScript kræver en langvarig kompileringsproces.
- Det understøtter ikke klasser, der er abstrakte.
- Typedefinitionsfilernes kvalitet er et problem.
- Ethvert tredjepartsbibliotek skal have en definitionsfil for at kunne bruges.
- Et kompileringstrin er nødvendigt for at konvertere TypeScript til JavaScript, hvis vi ønsker at køre TypeScript-applikationen i browseren.
- JavaScript er blevet brugt af webudviklere i mange år, og TypeScript giver ikke noget nyt.
5. Hvad er TypeScripts komponenter helt præcist?
I TypeScript er der tre hovedkategorier af komponenter, herunder:
- Sprog: Det inkluderer annoteringer for typen, nøgleord og syntaks.
- TypeScript-kompiler: TypeScript-instruktionerne er oversat til JavaScript af denne compiler (tsc).
- TypeScript sprogtjeneste: Sprogtjenesten tilbyder editorlignende apps som et andet lag oven på den grundlæggende compilerproces. Standardsættet af almindelige redigeringshandlinger understøttes af sprogtjenesten.
6. Kan du forklare grænseflader i TypeScript?
TypeScript bruger grænseflader til at angive syntaksen for enheder. Med andre ord kan dataformer som objekter eller en række elementer beskrives ved hjælp af grænseflader. Interfacenøgleordet, grænsefladenavnet og dets definition bruges til at erklære grænseflader. Lad os undersøge et brugerobjekts grundlæggende grænseflade.
Typen af en variabel kan derefter indstilles ved hjælp af grænsefladen (svarende til, hvordan du tildeler primitive typer til en variabel). Egenskaberne for grænsefladen vil derefter blive opfyldt af en variabel af typen Bruger.
Dit TypeScript-projekt drager fordel af grænseflader, fordi de giver ensartethed. Derudover forbedrer grænseflader dit projekts værktøjer ved at forbedre IDE-autofuldførelsesfunktionerne og garantere, at de rigtige værdier leveres til konstruktører og metoder.
7. Hvad er variabler i TypeScript, og hvordan erklæres de på forskellige måder?
En variabel er et specifikt udpeget hukommelsesområde, der bruges til at holde værdier. Et kolon (:) placeres efter variabelnavnet og efterfølges af typen, når en variabel erklæres i TypeScript. Vi erklærer variable med nøgleordet var, ligesom i JavaScript.
Visse retningslinjer skal overholdes, når en variabel deklareres i Typescript:
- Navnet kan ikke begynde med et tal.
- Variabelnavnet skal indeholde bogstaver eller tal.
- Dollarsymbolet ($) og understregning (_) er de eneste specialtegn, der er tilladt i dette felt.
8. Hvordan kan en delmængde af en grænseflade bruges til at generere en ny type?
Ved at levere en eksisterende type eller grænseflade og vælge de nøgler, der skal udelukkes fra den nye type, kan du oprette en ny type i TypeScript ved at bruge hjælpetypen udelad.
Det følgende eksempel viser, hvordan man konstruerer en ny type kaldet UserPreview, der er baseret på brugergrænsefladen, men som udelukker e-mail-egenskaben.
9. Hvad mener du med 'enhver' typer, og hvornår skal jeg bruge dem?
Nogle gange har du brug for at gemme en værdi i en variabel, men du er usikker på variablens type på forhånd. Værdien kunne for eksempel stamme fra brugerinput eller en API-anmodning. Du kan give enhver type værdi til en variabeltype ved at bruge "enhver" type.
Når en variabels type ikke er eksplicit specificeret, og compileren ikke er i stand til at bestemme den ud fra konteksten, mener TypeScript, at variablen er af typen enhver.
10. Hvordan er TypeScript et sprog med valgfri statisk skrevet syntaks?
Det er muligt at instruere compileren til at se bort fra en variabels type i TypeScript, da den eventuelt er statisk skrevet. Enhver datatype kan bruges til at tildele en hvilken som helst værdi til variablen. Når det kompileres, vil TypeScript ikke give nogen fejlkontrol.
11. Hvad betyder moduler i TypeScript?
Det er effektivt at gruppere relevante variabler, funktioner, klasser, grænseflader osv. ved hjælp af moduler. Det kan bruges, men ikke i det globale omfang, kun inden for sit eget anvendelsesområde.
I det væsentlige kan et moduls definerede variabler, funktioner, klasser og grænseflader ikke tilgås direkte uden for modulet.
Eksportnøgleordet kan bruges til at bygge et modul, mens importnøgleordet kan bruges til at inkludere et modul i et andet modul.
12. Hvordan fungerer "enums" i TypeScript?
En metode til at definere en samling af navngivne konstanter er at bruge enums eller optalte typer. Disse datastrukturer har en fast længde og en samling af faste værdier.
Når du repræsenterer en samling af alternativer for en given værdi i TypeScript, bruges enums ofte til at beskrive mulighederne ved hjælp af et sæt nøgle/værdi-par.
Lad os se en illustration af en enum, der bruges til at give en række forskellige brugertyper.
Enums konverteres internt til almindelige JavaScript-objekter af TypeScript efter kompilering. Brugen af enums er derfor at foretrække frem for brugen af flere separate const-variable.
Din kode er typesikker og lettere at forstå på grund af den gruppering, som enums giver.
13. Hvad adskiller et internt modul fra et eksternt modul?
Internt modul:
- Interne moduler var et træk ved Typescripts tidligere iteration.
- Navnet og kroppen på interne moduler er defineret ved hjælp af ModuleDeclarations.
- Disse er medlemmer af andre moduler, der er lokale eller eksporterede.
- Klasser, grænseflader, funktioner og variable er grupperet sammen i interne moduler, som kan eksporteres til et andet modul.
Eksternt modul:
- I den seneste version omtales eksterne moduler som moduler.
- En separat kildefil kendt som et eksternt modul bruges til at oprette dem, og hver enkelt har mindst én import- eller eksporterklæring.
- I den seneste version omtales eksterne moduler som moduler.
- De interne udsagn af moduldefinitionerne kan skjules ved hjælp af eksterne moduler, så kun de metoder og argumenter, der er forbundet med den definerede variabel, er synlige.
14. Hvad betyder TypeScripts anonyme funktion?
Funktioner klassificeret som anonyme mangler et funktionsnavn som identifikator. Disse rutiner defineres dynamisk under kørsel. Ligesom almindelige funktioner kan anonyme funktioner tage input og producere resultater.
En anonym funktion er typisk ikke tilgængelig, når den først er oprettet. Variabler kan tildeles en anonym funktion.
15. Hvad er et navneområde i TypeScript, og hvordan erklærer man et?
Navneområde grupperer logisk funktionaliteter. Disse bevarer internt den gamle typescript-kode. Det omfatter træk og ting med særlige forbindelser.
Et andet navn for et navneområde er et internt modul. Grænseflader, klasser, funktioner og variabler kan alle inkluderes i et navneområde for at give en samling af forbundet funktionalitet.
16. Hvilke adgangsmodifikatorer understøtter TypeScript?
Følgende er eksempler på, hvordan de offentlige, private og beskyttede adgangsmodifikatorer i TypeScript kan bruges til at kontrollere et klassemedlems tilgængelighed:
- Offentlig – Adgang er tilgængelig for alle medlemmer af klassen, alle dens efterkommerklasser og hver forekomst af klassen.
- Beskyttet – De er tilgængelige for alle medlemmer af klassen og alle dens underklasser. En klasseinstans kan dog ikke få adgang.
- Privat-Adgang til dem er kun begrænset til klassemedlemmer.
Da JavaScript er praktisk, antages det at være offentligt, hvis der ikke er givet en adgangsmodifikator.
17. Tillader TypeScript funktionsoverbelastning?
Ja, funktionsoverbelastning understøttes af TypeScript. Men nu det bliver gjort er mærkeligt. Derfor, når der overbelastes med TypeScript, er der kun én implementering med en række signaturer.
Mens den anden signatur indeholder en parameter med typetekst, har den første signatur kun én parameter med typenummer. Den tredje funktion, som inkluderer et argument af typen any, indeholder den faktiske implementering.
Implementeringen bestemmer derefter typen af den leverede parameter og kører en separat kodesektion i overensstemmelse med denne bestemmelse.
18. Hvordan tillader TypeScript valgfrie argumenter i funktioner?
I modsætning til JavaScript, hvis du forsøger at kalde en funktion uden at specificere den præcise mængde og typer af parametre som angivet i dens funktionssignatur, vil TypeScript-kompileren rejse en fejl.
Du kan bruge valgfrie parametre ved at bruge spørgsmålstegnet ('?') for at komme uden om dette problem. Det viser, at valgfrie parametre kan angives ved at tilføje et "?" til dem, der måske eller måske ikke modtager en værdi.
19. Hvordan varierer var, lad og const fra hinanden?
Tre forskellige måder at erklære en variabel på tilbydes af TypeScript, hver med et foreslået program.
var: Erklærer en global eller funktionsomfattet variabel med JavaScripts var-variables adfærd og retningslinjer for omfang. Variabler behøver ikke at angive deres værdier, når de erklæres.
lade: erklærer en blokvariabel med lokalt omfang. Lad variabler behøver ikke en variabels værdi for at blive indstillet, når de erklæres. Udtrykket "blok-omfanget lokal variabel" refererer til en variabel, der kun kan tilgås inde fra den blok, hvori den er indeholdt, såsom en funktion, en if/else-blok eller en loop. Lad variabler kan ikke læses fra eller skrives til, før de er deklareret, i modsætning til var.
const: Erklærer en værdi for en konstant med blokomfang, som ikke kan ændres, efter at den er blevet initialiseret. Konst-variabler skal initialiseres, før de erklæres. For variabler, der forbliver konstante under hele deres eksistens, er dette optimalt.
20. Beskriv dekoratører i TypeScript?
En accessor, egenskab, parameter, klasse, funktion eller dekoratør kan alle erklæres på en bestemt måde som dekoratører. Dekoratorer er funktioner med @expression-præfikset, der vil blive fremkaldt under kørsel med detaljer om den dekorerede erklæring.
Udtrykket skal vurdere en funktion, for at dekoratører kan fungere.
TypeScript Decorators har som mål at tilføje anmærkninger og informationer til den aktuelle kode.
I vores tsconfig.json-fil eller på kommandolinjen skal du aktivere experimentalDecorators-kompileringsindstillingen for at aktivere eksperimentel support for dekoratører:
21. Hvad betyder Mixins i TypeScript?
Mixins er en teknik til at skabe klasser fra genanvendelige dele i Javascript og blande delklasser for at skabe mere komplekse fulde klasser.
Konceptet er ligetil: funktion B accepterer klasse A og returnerer en ny klasse med dens funktionalitet tilføjet, i modsætning til klasse A, der udvider klasse B for at opnå dens funktionalitet. Funktion B i dette tilfælde er en blanding.
22. Hvad er typealiaser præcist i TypeScript?
Typealiasser ændrer navnet på en type. Typealiasser, som grænseflader, kan bruges til at navngive primitiver, fagforeninger, tupler og andre typer, som ellers skulle defineres manuelt.
Aliasing opretter ikke en ny type; snarere ændrer den navnet på en eksisterende type. Aliasing af en primitiv er ikke rigtig praktisk, selvom det kan være gavnligt for dokumentation.
Typealiasser, som grænseflader, kan være universelle; alt du skal gøre er at tilføje typeparametre og bruge dem på aliasdeklarationens højre side.
23. Hvad betyder udtrykket "Scope variabel"?
JavaScript understøtter både lokale og globale omfangsvariabler. Omfanget er en samling af objekter, variabler og funktioner.
Et eksempel på at deklarere en variabel i to omfang er:
- Variabel med lokalt omfang – Det fungerer som et funktionsobjekt til brug i funktioner.
- Variabel med globalt omfang – Dette vinduesobjekt kan bruges både inden for og uden for funktioner
24. Hvad bruges noImplicitAny præcist til?
TypeScript-kompilerens behandling af dit projekts implicitte alle typer ændres af egenskaben noImplicitAny i tsconfig.json-konfigurationsfilen til TypeScript-projekter.
NoImplicitAny-flaget kan indstilles til sand eller falsk og kan altid ændres efter initialisering. Da hvert projekt er unikt, er der ikke noget rigtigt eller forkert svar på, hvad dette nummer skal være.
Forståelse af skellene mellem flagets tændte og slukkede tilstande kan hjælpe dig med at vælge, hvilken indstilling der skal bruges til flaget.
Compileren bestemmer ikke typen af en variabel baseret på, hvordan den bruges, hvis flaget noImplicitAny er sat til false (standard). Typen er i stedet indstillet til enhver som standard af compileren.
Men hvis noImplicitAny-indstillingen er sat til sand, vil compileren gøre en indsats for at udlede typen og vil rejse en kompileringsfejl, hvis den ikke er i stand til at gøre det.
25. Hvordan varierer forenings- og krydstyper fra hinanden?
I stedet for at generere nye typer fra bunden, giver fagforeninger og skæringstyper dig mulighed for at komponere og blande eksisterende typer. Både union og kryds har karakteristiske egenskaber, der gør dem perfekte til visse anvendelsestilfælde.
En type, der kan være en af flere slags, omtales som en fagforeningstype. Listen over typer, der vil blive brugt i den nye type, er opdelt ved hjælp af | (lodret streg) symbol i fagforeningstyper.
Lad os se på en illustration:
På den anden side er skæringspunktet defineret som en type, der slår mange typer sammen til én, og integrerer alle hver type funktioner for at danne en ny type. Listen over typer, der vil blive flettet, er opdelt i kryds ved hjælp af &-symbolet.
Lad os undersøge en illustration:
26. Hvordan definerer du et TypeScript-deklarationsnøgleord?
Der er ingen TypeScript-erklæringsfiler i JavaScript-biblioteker eller -frameworks. Du skal dog bruge nøgleordet declare for at bruge dem i TypeScript-filen uden at støde på kompileringsfejl.
Når du ønsker at angive en variabel, der allerede kunne eksistere et andet sted, bruger du nøgleordet declare i ambient-deklarationer og metoder.
27. Hvad er generika i TypeScript?
Et værktøj kaldet TypeScript Generics tilbyder en metode til fremstilling af genanvendelige dele. I stedet for kun at arbejde med én form for data, kan den udvikle komponenter, der kan fungere med en række datatyper.
Derudover tilbyder den typesikkerhed uden at ofre effektivitet eller produktivitet. Vi kan bygge generiske klasser, generiske funktioner, generiske metoder og generiske grænseflader takket være generiske.
Generiske artikler er højt indtastede samlinger, da en typeparameter er skrevet mellem åbne () og lukkede (>) parenteser. Det gør brug af en unik slags type variabel kaldet T, som står for typer.
28. Hvad betyder JSX i TypeScript?
JSX er et legitimt JavaScript, der kan konverteres fra en indlejrbar XML-lignende syntaks. Sammen med React-rammen vandt JSX popularitet.
Den direkte kompilering, typebekræftelse og indlejring af JSX i JavaScript understøttes af TypeScript. Du skal give din fil a.tsx-udvidelse og aktivere JSX-indstillingen, hvis du ønsker at bruge den.
29. Hvad er TypeScript Ambients, og hvornår skal jeg bruge dem?
Compileren er informeret om den rigtige kildekode, der er placeret et andet sted gennem omgivende deklarationer.
Det vil bryde uden forudgående varsel, hvis vi forsøger at bruge disse kildekoder under kørsel, men de er ikke til stede. Dokumentlignende filer er omgivende deklarationsfiler.
Hvis kilden ændres, skal dokumentationen opdateres, og der vil opstå kompileringsproblemer, hvis den omgivende erklæringsfil ikke ændres.
Derudover gør det os i stand til at udnytte velkendte JavaScript-biblioteker, der allerede er meget brugt, såsom jQuery, AngularJS, NodeJS osv.
30. Hvad mener du med abstrakt klasse i TypeScript?
Abstrakte klasser definerer et objekts kontrakt uden at tillade direkte objektforekomst. En abstrakt klasse kan dog også tilbyde sit medlems implementeringsinformation.
Et eller flere abstrakte medlemmer kan findes i en abstrakt klasse. De abstrakte medlemmer af superklassen skal derefter have en implementering leveret af alle klasser, der udvider den abstrakte klasse.
Lad os tage et kig på et TypeScript-eksempel på en abstrakt klasse, og hvordan en anden klasse kan udvide den. Selvom både bil- og cykelklasserne i eksemplet nedenfor udvider Vehicle-klassen, implementerer de hver især drive()-funktionen på en unik måde.
31. Hvad er en TypeScript Map-fil præcist?
En kildekortfil kaldet en TypeScript-kortfil indeholder data om vores originale filer. Kildekortfilerne eller .map-filerne tillader værktøjer til at kortlægge den JavaScript-kode, der er output, og TypeScript-kildefilerne, der producerede den.
Derudover kan disse filer forbruges af debuggere, hvilket giver os mulighed for at debugge TypeScript-filen i stedet for JavaScript-filen.
32. Hvad er typepåstande i TypeScript?
Mens typepåstand fungerer på samme måde som typecasting på andre sprog som C# og Java, udfører den ikke typebekræftelse eller omarrangering af data.
Selvom typepåstand ikke har nogen effekt på runtime, tilbyder typecasting denne støtte. Typepåstande bliver på den anden side kun brugt af compileren og giver vejledning om, hvordan vi ønsker, at vores kode skal undersøges.
Konklusion
Afslutningsvis håber vi, at disse TypeScript-interviewspørgsmål vil være nyttige for dig, uanset om du er en udvikler, der gør klar til en jobsamtale, eller en ansættelsesleder, der prøver at finde den bedste ansøger.
Husk, at rekrutteringsprocessen involverer mere end blot teknisk ekspertise. For at sikre, at du lander (eller finder den egnede ansøger til) jobbet, er tidligere erfaringer og bløde færdigheder lige så afgørende.
Mange TypeScript-interviewspørgsmål er åbne og har ikke et eneste rigtigt svar, så husk det.
Interviewere er interesserede i rationalet bag dine svar.
Vær altid klar til opfølgende forespørgsler, der forklarer, hvordan du nåede frem til dit svar. Beskriv din tankeproces.
Giv en kommentar