Innholdsfortegnelse[Gjemme seg][Forestilling]
- 1. Hva er egentlig TypeScript, og hvordan er det forskjellig fra JavaScript?
- 2. Hva er noen bemerkelsesverdige funksjoner i TypeScript?
- 3. Hva er noen fordeler med å bruke TypeScript?
- 4. Hva er noen ulemper ved å bruke TypeScript?
- 5. Hva er egentlig TypeScripts komponenter?
- 6. Kan du forklare grensesnitt i TypeScript?
- 7. Hva er variabler i TypeScript og hvordan deklareres de på ulike måter?
- 8. Hvordan kan et undersett av et grensesnitt brukes til å generere en ny type?
- 9. Hva mener du med "alle" typer, og når bør jeg bruke dem?
- 10. Hvordan er TypeScript et språk med valgfri statisk skrevet syntaks?
- 11. Hva betyr moduler i TypeScript?
- 12. Hvordan fungerer "enums" i TypeScript?
- 13. Hva skiller en intern modul fra en ekstern modul?
- 14. Hva betyr TypeScripts anonyme funksjon?
- 15. Hva er et navneområde i TypeScript, og hvordan erklærer du et?
- 16. Hvilke tilgangsmodifikatorer støtter TypeScript?
- 17. Tillater TypeScript funksjon overbelastning?
- 18. Hvordan tillater TypeScript valgfrie argumenter i funksjoner?
- 19. Hvordan varierer var, la og const fra hverandre?
- 20. Beskriv dekoratører i TypeScript?
- 21. Hva betyr Mixins i TypeScript?
- 22. Hva er egentlig typealiaser i TypeScript?
- 23. Hva betyr begrepet «Omfangsvariabel»?
- 24. Hva brukes noImplicitAny til?
- 25. Hvordan varierer fagforenings- og krysstyper fra hverandre?
- 26. Hvordan definerer du et TypeScript-deklarasjonsnøkkelord?
- 27. Hva er generiske i TypeScript?
- 28. Hva betyr JSX i TypeScript?
- 29. Hva er TypeScript Ambients og når bør jeg bruke dem?
- 30. Hva mener du med abstrakt klasse i TypeScript?
- 31. Hva er egentlig en TypeScript Map-fil?
- 32. Hva er typepåstander i TypeScript?
- konklusjonen
Microsoft utviklet og fortsetter å støtte programmeringsspråket TypeScript. Med tillegg av statisk skriving som et alternativ, er det et syntaktisk supersett av JavaScript.
Storskala applikasjonsutviklingsspråk TypeScript kompilerer JavaScript. Siden TypeScript er et supersett av JavaScript, er programmer skrevet i JavaScript også gyldige i TypeScript.
Her er en omfattende liste over de mest typiske TypeScript-utviklerintervjuspørsmålene og svarene i tilfelle du deltar på et.
1. Hva er egentlig TypeScript, og hvordan er det forskjellig fra JavaScript?
Et supersett av JavaScript, TypeScript kompilerer til standard JavaScript. Fra et konseptuelt synspunkt ligner TypeScript og JavaScript på SASS og CSS.
Med andre ord, TypeScript er ES6 JavaScript med noen flere funksjoner. JavaScript er et skriptspråk mer beslektet med Python, mens TypeScript er et objektorientert, statisk skrevet språk som kan sammenlignes med Java og C#.
Klasser og grensesnitt er alle en del av TypeScripts objektorienterte design, og typeslutning er et av de mange verktøyene som er tilgjengelige takket være dens statiske skriving.
JavaScript er skrevet i en fil med filtypen .js, mens TypeScript er skrevet i en fil med filtypen .ts.
I motsetning til JavaScript, kan TypeScript-kode ikke kjøres direkte i en nettleser eller på noen annen plattform og forstås ikke av nettlesere. Målplattformen vil da kjøre vanlig JavaScript som ble generert fra .ts-filene ved hjelp av TypeScripts transpiler.
2. Hva er noen bemerkelsesverdige funksjoner i TypeScript?
- Statisk skriving er en funksjon i TypeScript som hjelper typekontroll under kompilering. Så selv uten å kjøre skriptet, kan du oppdage feil i koden mens du skriver den.
- DOM kan endres ved hjelp av TypeScript for å legge til eller fjerne elementer.
- Ethvert operativsystem, inkludert Windows, macOS og Linux, kan ha TypeScript-kompilatoren installert.
- Klasser, grensesnitt og moduler er noen av funksjonene som tilbys av TypeScript. Den kan dermed lage objektorientert kode for både klient- og server-side utvikling.
- Flertallet av funksjonene til ECMAScript 2015 (ES 6, 7) er allerede inkludert i TypeScript, inkludert klasse, grensesnitt, pilfunksjoner, etc.
- Hvis du bruker JavaScripts dynamiske skriving, støtter TypeScript også valgfri statisk skriving.
3. Hva er noen fordeler med å bruke TypeScript?
- Enhver JavaScript-motor eller nettleser kan kjøre TypeScript siden den er rask, enkel å lære og kjører raskt.
- Den deler samme syntaks og semantikk som JavaScript.
- Dette letter raskere skriving av frontend-kode av backend-utviklere.
- Den inneholder ES6- og ES7-funksjoner som kan funksjon i JavaScript ES5-motorer som Node.js.
- Eksisterende JavaScript-biblioteker som Jquery, D3.js, etc. støttes via Definition-filen, som har filtypen.d.ts.
- Et JavaScript-skript som allerede eksisterer kan påkalle TypeScript-koden. Den integreres også sømløst med gjeldende JavaScript-rammeverk og biblioteker.
4. Hva er noen ulemper ved å bruke TypeScript?
- Koding med TypeScript krever en langvarig kompileringsprosess.
- Den støtter ikke klasser som er abstrakte.
- Typedefinisjonsfilers kvalitet er et problem.
- Ethvert tredjepartsbibliotek må ha en definisjonsfil for å kunne brukes.
- Et kompileringstrinn er nødvendig for å konvertere TypeScript til JavaScript hvis vi ønsker å kjøre TypeScript-applikasjonen i nettleseren.
- JavaScript har blitt brukt av webutviklere i mange år, og TypeScript gir ikke noe nytt.
5. Hva er egentlig TypeScripts komponenter?
I TypeScript er det tre hovedkategorier av komponenter, inkludert:
- Språk: Den inkluderer merknader for typen, nøkkelord og syntaks.
- TypeScript-kompilator: TypeScript-instruksjonene er oversatt til JavaScript av denne kompilatoren (tsc).
- TypeScript-språktjeneste: Språktjenesten tilbyr redaktørlignende apper som et andre lag på toppen av den grunnleggende kompilatorprosessen. Standardsettet med vanlige redigeringsoperasjoner støttes av språktjenesten.
6. Kan du forklare grensesnitt i TypeScript?
TypeScript bruker grensesnitt for å spesifisere syntaksen til enheter. Med andre ord kan dataformer som objekter eller en rekke elementer beskrives ved hjelp av grensesnitt. Grensesnittnøkkelordet, grensesnittnavnet og dets definisjon brukes til å deklarere grensesnitt. La oss undersøke et brukerobjekts grunnleggende grensesnitt.
Typen av en variabel kan deretter angis ved hjelp av grensesnittet (i likhet med hvordan du tilordner primitive typer til en variabel). Egenskapene til grensesnittet vil da bli møtt av en variabel av typen Bruker.
TypeScript-prosjektet ditt drar nytte av grensesnitt fordi de gir ensartethet. I tillegg forbedrer grensesnitt prosjektets verktøy ved å forbedre IDE-autofullføringsfunksjonene og garantere at de riktige verdiene blir levert til konstruktører og metoder.
7. Hva er variabler i TypeScript og hvordan deklareres de på ulike måter?
En variabel er et spesifikt utpekt minneområde som brukes til å holde verdier. Et kolon (:) plasseres etter variabelnavnet og etterfølges av typen når en variabel deklareres i TypeScript. Vi erklærer variabler med søkeordet var, akkurat som i JavaScript.
Visse retningslinjer må følges når du deklarerer en variabel i Typescript:
- Navnet kan ikke begynne med et tall.
- Variabelnavnet må inneholde bokstaver eller tall.
- Dollarsymbolet ($) og understrek (_) er de eneste spesialtegnene som er tillatt i dette feltet.
8. Hvordan kan et undersett av et grensesnitt brukes til å generere en ny type?
Ved å oppgi en eksisterende type eller grensesnitt og velge nøklene som skal ekskluderes fra den nye typen, kan du opprette en ny type i TypeScript ved å bruke verktøytypen utelate.
Eksemplet som følger viser hvordan du konstruerer en ny type kalt UserPreview som er basert på brukergrensesnittet, men som ekskluderer e-postegenskapen.
9. Hva mener du med "alle" typer, og når bør jeg bruke dem?
Noen ganger må du lagre en verdi i en variabel, men du er usikker på hvilken type variabel på forhånd. Verdien kan for eksempel stamme fra brukerinndata eller en API-forespørsel. Du kan gi en hvilken som helst type verdi til en variabeltype ved å bruke "hvilken som helst".
Når en variabels type ikke er eksplisitt spesifisert og kompilatoren ikke er i stand til å bestemme den fra konteksten, mener TypeScript at variabelen er av typen hvilken som helst.
10. Hvordan er TypeScript et språk med valgfri statisk skrevet syntaks?
Det er mulig å instruere kompilatoren til å se bort fra en variabels type i TypeScript siden den eventuelt er statisk skrevet. Enhver datatype kan brukes til å tilordne en hvilken som helst verdi til variabelen. Når det kompileres, vil ikke TypeScript gi noen feilkontroll.
11. Hva betyr moduler i TypeScript?
Det er effektivt å gruppere relevante variabler, funksjoner, klasser, grensesnitt osv. ved hjelp av moduler. Den kan brukes, men ikke i det globale omfanget, bare innenfor sitt eget omfang.
I hovedsak kan en moduls definerte variabler, funksjoner, klasser og grensesnitt ikke nås direkte fra utsiden av modulen.
Eksportnøkkelordet kan brukes til å bygge en modul, mens importnøkkelordet kan brukes til å inkludere en modul i en annen modul.
12. Hvordan fungerer "enums" i TypeScript?
En metode for å definere en samling av navngitte konstanter er å bruke oppregninger eller oppregnede typer. Disse datastrukturene har en fast lengde og en samling faste verdier.
Når du representerer en samling av alternativer for en gitt verdi i TypeScript, brukes enums ofte for å beskrive mulighetene ved å bruke et sett med nøkkel/verdi-par.
La oss se en illustrasjon av en enum som brukes til å gi en rekke brukertyper.
Enums konverteres internt til vanlige JavaScript-objekter av TypeScript etter kompilering. Bruk av enums er derfor å foretrekke fremfor bruk av flere separate const-variabler.
Koden din er typesikker og lettere å forstå på grunn av grupperingen som enums gir.
13. Hva skiller en intern modul fra en ekstern modul?
Intern modul:
- Interne moduler var et trekk ved Typescripts forrige iterasjon.
- Navnet og kroppen til interne moduler er definert ved hjelp av ModuleDeclarations.
- Dette er medlemmer av andre moduler som er lokale eller eksporterte.
- Klasser, grensesnitt, funksjoner og variabler er gruppert sammen i interne moduler, som kan eksporteres til en annen modul.
Ekstern modul:
- I den nyeste versjonen omtales eksterne moduler som moduler.
- En egen kildefil kjent som en ekstern modul brukes til å lage dem, og hver av dem har minst én import- eller eksporterklæring.
- I den nyeste versjonen omtales eksterne moduler som moduler.
- De interne setningene til moduldefinisjonene kan skjules ved bruk av eksterne moduler, slik at bare metodene og argumentene knyttet til den definerte variabelen er synlige.
14. Hva betyr TypeScripts anonyme funksjon?
Funksjoner klassifisert som anonyme mangler funksjonsnavn som identifikator. Disse rutinene er dynamisk definert under kjøring. Som vanlige funksjoner kan anonyme funksjoner ta innspill og produsere resultater.
En anonym funksjon er vanligvis ikke tilgjengelig når den først er opprettet. Variabler kan tilordnes en anonym funksjon.
15. Hva er et navneområde i TypeScript, og hvordan erklærer du et?
Navneområde grupperer logisk funksjoner. Disse beholder internt den gamle typeskriptkoden. Det omfatter egenskaper og ting med spesielle forbindelser.
Et annet navn for et navneområde er en intern modul. Grensesnitt, klasser, funksjoner og variabler kan alle inkluderes i et navneområde for å gi en samling av tilkoblet funksjonalitet.
16. Hvilke tilgangsmodifikatorer støtter TypeScript?
Følgende er eksempler på hvordan de offentlige, private og beskyttede tilgangsmodifikatorene i TypeScript kan brukes til å kontrollere et klassemedlems tilgjengelighet:
- Offentlig – Tilgang er tilgjengelig for hvert medlem av klassen, alle dens etterkommerklasser og hver forekomst av klassen.
- Beskyttet – De er tilgjengelige for alle medlemmer av klassen og alle dens underklasser. En klasseforekomst kan imidlertid ikke få tilgang.
- Privat - Tilgang til dem er begrenset til kun klassemedlemmer.
Siden JavaScript er nyttig, antas det å være offentlig hvis en tilgangsmodifikator ikke er gitt.
17. Tillater TypeScript funksjon overbelastning?
Ja, funksjonsoverbelastning støttes av TypeScript. Men nå det blir gjort er merkelig. Derfor, når du overbelaster med TypeScript, er det bare én implementering med en rekke signaturer.
Mens den andre signaturen inneholder en parameter med typetekst, har den første signaturen bare én parameter med typenummer. Den tredje funksjonen, som inkluderer et argument av typen any, inneholder den faktiske implementeringen.
Implementeringen bestemmer deretter typen til den angitte parameteren og kjører en separat kodedel i samsvar med denne bestemmelsen.
18. Hvordan tillater TypeScript valgfrie argumenter i funksjoner?
I motsetning til JavaScript, hvis du prøver å kalle en funksjon uten å spesifisere den nøyaktige mengden og typene parametere som er angitt i funksjonssignaturen, vil TypeScript-kompilatoren oppstå en feil.
Du kan bruke valgfrie parametere ved å bruke spørsmålstegnsymbolet ('?') for å omgå dette problemet. Den viser at valgfrie parametere kan angis ved å legge til et "?" til de som kanskje mottar en verdi eller ikke.
19. Hvordan varierer var, la og const fra hverandre?
Tre forskjellige måter å deklarere en variabel tilbys av TypeScript, hver med en foreslått applikasjon.
var: Erklærer en global eller funksjonsomfangsvariabel med JavaScripts var-variablers virkemåte og retningslinjer for omfang. Variabler trenger ikke at verdiene deres settes når de deklareres.
la: erklærer en blokkvariabel med lokalt omfang. La variabler trenger ikke en variabels verdi for å angis når de er deklarert. Begrepet "blokk-omfanget lokal variabel" refererer til en variabel som bare kan nås fra innsiden av blokken den er inneholdt i, for eksempel en funksjon, en if/else-blokk eller en loop. La variabler kan ikke leses fra eller skrives til før de er deklarert, i motsetning til var.
const: Erklærer en verdi for en konstant med blokkomfang som ikke kan endres etter at den er initialisert. Konstvariabler må initialiseres før de deklareres. For variabler som forblir konstante under hele eksistensen, er dette optimalt.
20. Beskriv dekoratører i TypeScript?
En accessor, egenskap, parameter, klasse, funksjon eller dekoratør kan alle erklæres på en bestemt måte som dekoratører. Dekoratorer er funksjoner med @expression-prefikset som vil bli påkalt under kjøring med detaljer om den dekorerte erklæringen.
Uttrykket må vurdere en funksjon for at dekoratører skal fungere.
TypeScript-dekoratorer har som mål å legge til merknader og informasjon deklarativt til gjeldende kode.
I tsconfig.json-filen vår eller på kommandolinjen må du aktivere kompilatoralternativet experimentalDecorators for å aktivere eksperimentell støtte for dekoratører:
21. Hva betyr Mixins i TypeScript?
Mixins er en teknikk for å lage klasser fra gjenbrukbare deler i Javascript og blande delklasser for å lage mer komplekse fullklasser.
Konseptet er enkelt: funksjon B aksepterer klasse A og returnerer en ny klasse med funksjonalitet lagt til, i motsetning til klasse A som utvider klasse B for å oppnå funksjonaliteten. Funksjon B i dette tilfellet er en blanding.
22. Hva er egentlig typealiaser i TypeScript?
Typealiaser endrer navnet på en type. Typealiaser, som grensesnitt, kan brukes til å navngi primitiver, fagforeninger, tupler og andre typer som ellers måtte defineres for hånd.
Aliasing oppretter ikke en ny type; snarere endrer den navnet på en eksisterende type. Å kalle en primitiv er egentlig ikke praktisk, selv om det kan være gunstig for dokumentasjon.
Typealiaser, som grensesnitt, kan være universelle; alt du trenger å gjøre er å legge til typeparametere og bruke dem på aliasdeklarasjonens høyre side.
23. Hva betyr begrepet «Omfangsvariabel»?
JavaScript støtter både lokale og globale omfangsvariabler. Omfanget er en samling av objekter, variabler og funksjoner.
Et eksempel på å deklarere en variabel i to omfang er:
- Variabel med lokalt omfang – Det fungerer som et funksjonsobjekt for bruk innenfor funksjoner.
- Variabel med globalt omfang – Dette vindusobjektet kan brukes både innenfor og utenfor funksjoner
24. Hva brukes noImplicitAny til?
TypeScript-kompilatorens behandling av prosjektets implisitte typer endres av egenskapen noImplicitAny i tsconfig.json-konfigurasjonsfilen for TypeScript-prosjekter.
NoImplicitAny-flagget kan settes til true eller false og kan alltid endres etter initialisering. Gitt at hvert prosjekt er unikt, er det ikke noe riktig eller galt svar på hva dette tallet skal være.
Å forstå forskjellene mellom flaggets på- og avtilstander kan hjelpe deg med å velge hvilken innstilling du vil bruke for flagget.
Kompilatoren bestemmer ikke typen til en variabel basert på hvordan den brukes hvis noImplicitAny-flagget er satt til false (standard). Typen er i stedet satt til hvilken som helst som standard av kompilatoren.
Imidlertid, hvis noImplicitAny-alternativet er satt til sant, vil kompilatoren gjøre en innsats for å utlede typen og vil generere en kompileringstidsfeil hvis den ikke er i stand til å gjøre det.
25. Hvordan varierer fagforenings- og krysstyper fra hverandre?
I stedet for å generere nye typer fra bunnen av, lar fagforeninger og skjæringstyper deg komponere og blande eksisterende typer. Både union og kryss har særegne kvaliteter som gjør dem perfekte for visse brukstilfeller.
En type som kan være en av flere typer omtales som en fagforeningstype. Listen over typer som vil bli brukt i den nye typen er delt opp med | (vertikal strek) symbol i unionstyper.
La oss se på en illustrasjon:
På den annen side er skjæringspunktet definert som en type som slår sammen mange typer til én, og integrerer alle hver type funksjoner for å danne en ny type. Listen over typer som skal slås sammen er delt inn i kryss ved å bruke &-symbolet.
La oss undersøke en illustrasjon:
26. Hvordan definerer du et TypeScript-deklarasjonsnøkkelord?
Det er ingen TypeScript-deklarasjonsfiler i JavaScript-biblioteker eller -rammeverk. Du må imidlertid bruke nøkkelordet declare for å bruke dem i TypeScript-filen uten å støte på noen kompileringsfeil.
Når du ønsker å spesifisere en variabel som allerede kan eksistere et annet sted, bruker du nøkkelordet declare i ambient-deklarasjoner og metoder.
27. Hva er generiske i TypeScript?
Et verktøy kalt TypeScript Generics tilbyr en metode for å produsere gjenbrukbare deler. I stedet for å jobbe med bare én form for data, kan den utvikle komponenter som kan operere med en rekke datatyper.
I tillegg tilbyr den type sikkerhet uten å ofre effektivitet eller produktivitet. Vi kan bygge generiske klasser, generiske funksjoner, generiske metoder og generiske grensesnitt takket være generiske.
Generiske er høyt skrevet samlinger siden en type parameter er skrevet mellom åpne () og lukkede (>) parenteser. Den bruker en unik type typevariabel kalt T som står for typer.
28. Hva betyr JSX i TypeScript?
JSX er et legitimt JavaScript som kan konverteres fra en integrert XML-lignende syntaks. Sammen med React-rammeverket fikk JSX popularitet.
Direkte kompilering, typebekreftelse og innebygging av JSX i JavaScript støttes av TypeScript. Du må gi filen a.tsx-utvidelsen og aktivere JSX-alternativet hvis du ønsker å bruke det.
29. Hva er TypeScript Ambients og når bør jeg bruke dem?
Kompilatoren blir informert om den virkelige kildekoden som er plassert andre steder gjennom omgivelsesdeklarasjoner.
Det vil bryte uten forvarsel hvis vi prøver å bruke disse kildekodene under kjøring, men de er ikke til stede. Dokumentlignende filer er omgivelsesdeklarasjonsfiler.
Hvis kilden endres, må dokumentasjonen oppdateres, og kompilatorproblemer vil oppstå hvis ambient-deklarasjonsfilen ikke endres.
I tillegg gjør det oss i stand til å utnytte velkjente JavaScript-biblioteker som allerede er mye brukt, som jQuery, AngularJS, NodeJS, etc.
30. Hva mener du med abstrakt klasse i TypeScript?
Abstrakte klasser definerer et objekts kontrakt uten å tillate direkte objektinstansiering. Imidlertid kan en abstrakt klasse også tilby medlemmenes implementeringsinformasjon.
Ett eller flere abstrakte medlemmer kan bli funnet i en abstrakt klasse. De abstrakte medlemmene av superklassen må da ha en implementering levert av alle klasser som utvider den abstrakte klassen.
La oss ta en titt på et TypeScript-eksempel på en abstrakt klasse og hvordan en annen klasse kan utvide den. Selv om både Car- og Bike-klassene i eksemplet nedenfor utvider Vehicle-klassen, implementerer de hver drive()-funksjonen på en unik måte.
31. Hva er egentlig en TypeScript Map-fil?
En kildekartfil kalt en TypeScript-kartfil inneholder data om våre originale filer. Kildekartfilene, eller .map-filene, lar verktøy kartlegge mellom JavaScript-koden som sendes ut og TypeScript-kildefilene som produserte den.
I tillegg kan disse filene konsumeres av feilsøkere, slik at vi kan feilsøke TypeScript-filen i stedet for JavaScript-filen.
32. Hva er typepåstander i TypeScript?
Mens typepåstand fungerer på samme måte som typecasting på andre språk som C# og Java, utfører den ikke typebekreftelse eller omorganisering av data.
Selv om typepåstand ikke har noen effekt på kjøretid, tilbyr typecasting denne støtten. Typepåstander blir derimot bare brukt av kompilatoren og gir veiledning om hvordan vi vil at koden vår skal undersøkes.
konklusjonen
Avslutningsvis håper vi at disse TypeScript-intervjuspørsmålene vil være nyttige for deg, enten du er en utvikler som gjør seg klar for et jobbintervju eller en ansettelsesleder som prøver å finne den beste søkeren.
Husk at rekrutteringsprosessen involverer mer enn bare teknisk ekspertise. For å sikre at du får (eller finner den passende søkeren til) jobben, er tidligere erfaringer og myke ferdigheter like avgjørende.
Mange TypeScript-intervjuspørsmål er åpne og har ikke et eneste riktig svar, så husk det.
Intervjuere er interessert i begrunnelsen bak svarene dine.
Vær alltid klar for oppfølgende henvendelser som forklarer hvordan du kom frem til svaret ditt. Beskriv tankeprosessen din.
Legg igjen en kommentar