Taula de continguts[Amaga][Espectacle]
- 1. Què és exactament TypeScript i en què es diferencia de JavaScript?
- 2. Quines són algunes de les característiques notables de TypeScript?
- 3. Quins avantatges té l'ús de TypeScript?
- 4. Quins inconvenients té l'ús de TypeScript?
- 5. Quins són exactament els components de TypeScript?
- 6. Pots explicar les interfícies en TypeScript?
- 7. Què són les variables a TypeScript i com es declaren de diverses maneres?
- 8. Com es pot utilitzar un subconjunt d'una interfície per generar un tipus nou?
- 9. Què vols dir amb "qualsevol" tipus i quan els he d'utilitzar?
- 10. Com és TypeScript un llenguatge amb una sintaxi de tipus estàtica opcional?
- 11. A TypeScript, què volen dir els mòduls?
- 12. Com funcionen les "enumeracions" a TypeScript?
- 13. Què distingeix un mòdul intern d'un mòdul extern?
- 14. Què significa la funció anònima de TypeScript?
- 15. A TypeScript, què és un espai de noms i com es declara un?
- 16. Quins modificadors d'accés admet TypeScript?
- 17. TypeScript permet la sobrecàrrega de funcions?
- 18. Com permet TypeScript arguments opcionals a les funcions?
- 19. Com varien var, let i const entre si?
- 20. A TypeScript, descriu els decoradors?
- 21. A TypeScript, què vol dir Mixins?
- 22. Què són exactament els àlies de tipus a TypeScript?
- 23. Què significa el terme "Variable d'abast"?
- 24. Per a què serveix exactament noImplicitAny?
- 25. Com varien els tipus d'unió i intersecció?
- 26. Com es defineix una paraula clau de declaració de TypeScript?
- 27. A TypeScript, què són els genèrics?
- 28. Què significa JSX a TypeScript?
- 29. Què són els ambients TypeScript i quan els he d'utilitzar?
- 30. Què entens per classe abstracta a TypeScript?
- 31. Què és exactament un fitxer TypeScript Map?
- 32. A TypeScript, què són les assercions de tipus?
- Conclusió
Microsoft va desenvolupar i continua donant suport al llenguatge de programació TypeScript. Amb l'addició de l'escriptura estàtica com a opció, és un superconjunt sintàctic de JavaScript.
El llenguatge de desenvolupament d'aplicacions a gran escala TypeScript compila JavaScript. Com que TypeScript és un superconjunt de JavaScript, els programes escrits en JavaScript també són vàlids a TypeScript.
Aquí teniu una llista completa de les preguntes i respostes més típiques de l'entrevista de desenvolupadors de TypeScript en cas que hi assistiu a una.
1. Què és exactament TypeScript i en què es diferencia de JavaScript?
Un superconjunt de JavaScript, TypeScript es compila amb JavaScript estàndard. Des d'un punt de vista conceptual, TypeScript i JavaScript són similars a SASS i CSS.
En altres paraules, TypeScript és JavaScript ES6 amb algunes capacitats més. JavaScript és un llenguatge de script més semblant a Python, mentre que TypeScript és un llenguatge d'escriptura estàtica i orientat a objectes comparable a Java i C#.
Les classes i les interfícies formen part del disseny orientat a objectes de TypeScript, i la inferència de tipus és una de les moltes eines disponibles gràcies a la seva escriptura estàtica.
JavaScript s'escriu en un fitxer amb una extensió .js, mentre que TypeScript s'escriu en un fitxer amb una extensió .ts.
Al contrari del JavaScript, el codi TypeScript no es pot executar directament en un navegador o en cap altra plataforma i els navegadors no l'entén. Aleshores, la plataforma de destinació executarà el JavaScript senzill que es va generar a partir dels fitxers .ts mitjançant el transpiler de TypeScript.
2. Quines són algunes de les característiques notables de TypeScript?
- L'escriptura estàtica és una característica de TypeScript que ajuda a comprovar el tipus durant la compilació. Per tant, fins i tot sense executar l'script, podeu detectar errors en el codi mentre l'escriu.
- El DOM es pot alterar mitjançant TypeScript per afegir o eliminar elements.
- Qualsevol sistema operatiu, inclosos Windows, macOS i Linux, pot tenir instal·lat el compilador TypeScript.
- Classes, interfícies i mòduls són algunes de les funcionalitats que ofereix TypeScript. Així, pot crear codi orientat a objectes tant per al desenvolupament del costat del client com del costat del servidor.
- La majoria de les característiques d'ECMAScript 2015 (ES 6, 7) ja estan incloses a TypeScript, incloses classes, interfícies, funcions de fletxa, etc.
- Si utilitzeu l'escriptura dinàmica de JavaScript, TypeScript també admet l'escriptura estàtica opcional.
3. Quins avantatges té l'ús de TypeScript?
- Qualsevol motor o navegador JavaScript pot executar TypeScript ja que és ràpid, fàcil d'aprendre i s'executa ràpidament.
- Comparteix la mateixa sintaxi i semàntica que JavaScript.
- Això facilita l'escriptura més ràpida del codi frontal per part dels desenvolupadors de backend.
- Incorpora capacitats ES6 i ES7 que poden funció en JavaScript Motors ES5 com Node.js.
- Les biblioteques de JavaScript existents com Jquery, D3.js, etc. són compatibles amb el fitxer Definition, que té l'extensió.d.ts.
- Un script JavaScript que ja existeix pot invocar el codi TypeScript. També s'integra perfectament amb els marcs i biblioteques de JavaScript actuals.
4. Quins inconvenients té l'ús de TypeScript?
- La codificació amb TypeScript requereix un llarg procés de compilació.
- No admet classes abstractes.
- La qualitat dels fitxers de definició de tipus és un problema.
- Qualsevol biblioteca de tercers ha de tenir un fitxer de definició per poder utilitzar-la.
- Un pas de compilació és necessari per convertir TypeScript en JavaScript si volem executar l'aplicació TypeScript al navegador.
- Els desenvolupadors web utilitzen JavaScript durant molts anys i TypeScript no ofereix res de nou.
5. Quins són exactament els components de TypeScript?
A TypeScript, hi ha tres categories principals de components, que inclouen:
- Llenguatge: Inclou anotacions per al tipus, paraules clau i sintaxi.
- Compilador TypeScript: Aquest compilador (tsc) tradueix les instruccions TypeScript a JavaScript.
- Servei de llenguatge TypeScript: The Language Service ofereix aplicacions semblants a l'editor com a segona capa a la part superior del procés bàsic del compilador. El servei d'idiomes admet el conjunt estàndard d'operacions d'edició habituals.
6. Pots explicar les interfícies en TypeScript?
TypeScript utilitza interfícies per especificar la sintaxi de les entitats. En altres paraules, es poden descriure formes de dades com objectes o una sèrie d'elements mitjançant interfícies. La paraula clau de la interfície, el nom de la interfície i la seva definició s'utilitzen per declarar interfícies. Examinem la interfície bàsica d'un objecte d'usuari.
El tipus d'una variable es pot establir mitjançant la interfície (de la mateixa manera que s'assignen tipus primitius a una variable). Aleshores, les propietats de la interfície les complirà una variable del tipus Usuari.
El vostre projecte TypeScript es beneficia de les interfícies perquè proporcionen uniformitat. A més, les interfícies milloren les eines del vostre projecte millorant les capacitats d'autocompletar IDE i garantint que els valors adequats s'estan subministrant als constructors i mètodes.
7. Què són les variables a TypeScript i com es declaren de diverses maneres?
Una variable és una àrea de memòria específicament designada que s'utilitza per contenir valors. Els dos punts (:) es col·loquen després del nom de la variable i el segueix el tipus quan es declara una variable en TypeScript. Declarem variables amb la paraula clau var, igual que a JavaScript.
S'han d'observar determinades directrius mentre es declara una variable a Typescript:
- El nom no pot començar amb un número.
- El nom de la variable ha de contenir lletres o números.
- El símbol del dòlar ($) i el guió baix (_) són els únics caràcters especials permesos en aquest camp.
8. Com es pot utilitzar un subconjunt d'una interfície per generar un tipus nou?
Si proporcioneu un tipus o interfície existent i escolliu les claus que s'exclouen del nou tipus, podeu crear un tipus nou a TypeScript utilitzant el tipus d'utilitat omit.
L'exemple que segueix mostra com construir un nou tipus anomenat UserPreview que es basa en la interfície d'usuari però exclou la propietat del correu electrònic.
9. Què vols dir amb "qualsevol" tipus i quan els he d'utilitzar?
De vegades cal desar un valor en una variable, però no esteu segur del tipus de variable prèviament. El valor podria originar-se de l'entrada de l'usuari o d'una sol·licitud d'API, per exemple. Podeu donar qualsevol tipus de valor a un tipus de variable utilitzant el tipus "qualsevol".
Quan el tipus d'una variable no s'especifica explícitament i el compilador no pot determinar-lo a partir del context, TypeScript creu que la variable és del tipus qualsevol.
10. Com és TypeScript un llenguatge amb una sintaxi de tipus estàtica opcional?
És possible indicar al compilador que no tingui en compte el tipus d'una variable a TypeScript, ja que opcionalment s'escriu estàticament. Qualsevol tipus de dades es pot utilitzar per assignar qualsevol tipus de valor a la variable. Quan es compila, TypeScript no proporcionarà cap verificació d'errors.
11. A TypeScript, què volen dir els mòduls?
És efectiu agrupar variables rellevants, funcions, classes, interfícies, etc. mitjançant mòduls. Es pot utilitzar, però no en l'àmbit global, només dins del seu propi àmbit.
En essència, no es pot accedir directament a les variables, funcions, classes i interfícies definides d'un mòdul des de fora del mòdul.
La paraula clau d'exportació es pot utilitzar per crear un mòdul, mentre que la paraula clau d'import es pot utilitzar per incloure un mòdul en un altre mòdul.
12. Com funcionen les "enumeracions" a TypeScript?
Un mètode per definir una col·lecció de constants anomenades és utilitzar enumeracions o tipus enumerats. Aquestes estructures de dades tenen una longitud fixa i una col·lecció de valors fixos.
Quan es representen una col·lecció d'alternatives per a un valor determinat a TypeScript, les enumeracions s'utilitzen sovint per descriure les possibilitats utilitzant un conjunt de parells clau/valor.
Vegem una il·lustració d'una enumeració que s'utilitza per proporcionar una varietat de tipus d'usuaris.
Les enumeracions es converteixen internament en objectes JavaScript normals mitjançant TypeScript després de la compilació. Per tant, l'ús d'enums és preferible a l'ús de diverses variables const separades.
El vostre codi és segur de tipus i és més fàcil d'entendre a causa de l'agrupació que proporcionen les enumeracions.
13. Què distingeix un mòdul intern d'un mòdul extern?
Mòdul intern:
- Els mòduls interns eren una característica de la iteració anterior de Typescript.
- El nom i el cos dels mòduls interns es defineixen mitjançant ModuleDeclarations.
- Són membres d'altres mòduls que són locals o exportats.
- Les classes, interfícies, funcions i variables s'agrupen en mòduls interns, que es poden exportar a un altre mòdul.
Mòdul extern:
- A la versió més recent, els mòduls externs s'anomenen mòduls.
- S'utilitza un fitxer font separat conegut com a mòdul extern per crear-los, i cadascun té almenys una declaració d'importació o exportació.
- A la versió més recent, els mòduls externs s'anomenen mòduls.
- Les declaracions internes de les definicions de mòduls es poden amagar mitjançant mòduls externs, deixant visibles només els mètodes i arguments connectats a la variable definida.
14. Què significa la funció anònima de TypeScript?
Les funcions classificades com a anònimes no tenen un nom de funció com a identificador. Aquestes rutines es defineixen dinàmicament durant el temps d'execució. Igual que les funcions normals, les funcions anònimes poden prendre entrades i produir resultats.
Normalment, una funció anònima no és accessible un cop s'ha creat. Les variables es poden assignar a una funció anònima.
15. A TypeScript, què és un espai de noms i com es declara un?
L'espai de noms agrupa lògicament les funcionalitats. Aquests conserven internament el codi heretat mecanografiat. Engloba els trets i les coses amb connexions particulars.
Un altre nom per a un espai de noms és un mòdul intern. Les interfícies, les classes, les funcions i les variables es poden incloure en un espai de noms per proporcionar una col·lecció de funcionalitats connectades.
16. Quins modificadors d'accés admet TypeScript?
A continuació es mostren exemples de com es poden utilitzar els modificadors d'accés públic, privat i protegit de TypeScript per controlar l'accessibilitat d'un membre de la classe:
- Públic: l'accés està disponible per a tots els membres de la classe, totes les seves classes descendents i cada instància de la classe.
- Protegits: són accessibles per a tots els membres de la classe i totes les seves subclasses. Tanmateix, una instància de classe no pot accedir.
- L'accés privat a ells està restringit només als membres de la classe.
Com que JavaScript és útil, si no es dóna un modificador d'accés, se suposa que és públic.
17. TypeScript permet la sobrecàrrega de funcions?
Sí, TypeScript admet la sobrecàrrega de funcions. Però ara s'està fent és estrany. Per tant, quan es sobrecarrega amb TypeScript, només hi ha una implementació amb una varietat de signatures.
Mentre que la segona signatura conté un paràmetre de text de tipus, la primera signatura només té un paràmetre de número de tipus. La tercera funció, que inclou un argument de tipus any, conté la implementació real.
Aleshores, la implementació determina el tipus del paràmetre proporcionat i executa una secció de codi independent d'acord amb aquesta determinació.
18. Com permet TypeScript arguments opcionals a les funcions?
Contràriament a JavaScript, si intenteu cridar una funció sense especificar la quantitat precisa i els tipus de paràmetres tal com s'indica a la signatura de la funció, el compilador TypeScript generarà un error.
Podeu utilitzar paràmetres opcionals utilitzant el símbol de signe d'interrogació ('?') per solucionar aquest problema. Mostra que els paràmetres opcionals es poden indicar afegint un "?" als que poden rebre o no un valor.
19. Com varien var, let i const entre si?
TypeScript ofereix tres maneres diferents de declarar una variable, cadascuna amb una aplicació suggerida.
var: declara una variable global o d'abast de funció amb el comportament i les directrius d'abast de les variables var de JavaScript. Les variables no necessiten establir els seus valors quan es declaren.
deixar: declara una variable de bloc d'àmbit local. Permet que les variables no necessitin el valor d'una variable per establir-se quan es declaren. El terme "variable local d'abast de bloc" es refereix a una variable a la qual només es pot accedir des de l'interior del bloc en què està continguda, com ara una funció, un bloc if/else o un bucle. Permet que les variables no es puguin llegir ni escriure abans de declarar-les, a diferència de var.
const: Declara un valor per a una constant d'abast de bloc que no es pot alterar després d'haver-se inicialitzat. Les variables const s'han d'inicialitzar abans de ser declarades. Per a variables que es mantenen constants durant tota la seva existència, això és òptim.
20. A TypeScript, descriu els decoradors?
Un descriptor, una propietat, un paràmetre, una classe, una funció o un decorador es poden declarar d'una manera específica com a decoradors. Els decoradors són funcions amb el prefix @expression que s'invocaran en temps d'execució amb detalls sobre la declaració decorada.
L'expressió ha d'avaluar una funció perquè els decoradors funcionin.
Els decoradors de TypeScript proporcionen l'objectiu d'afegir de manera declarativa anotacions i informació al codi actual.
Al nostre fitxer tsconfig.json o a la línia d'ordres, heu d'activar l'opció del compilador experimentalDecorators per habilitar el suport experimental per als decoradors:
21. A TypeScript, què vol dir Mixins?
Els mixins són una tècnica per crear classes a partir de parts reutilitzables en Javascript i barrejar classes parcials per crear classes completes més complexes.
El concepte és senzill: la funció B accepta la classe A i retorna una nova classe amb la seva funcionalitat afegida, a diferència de la classe A que amplia la classe B per obtenir la seva funcionalitat. La funció B en aquest cas és un mixin.
22. Què són exactament els àlies de tipus a TypeScript?
Els àlies de tipus canvien el nom d'un tipus. Els àlies de tipus, com les interfícies, es poden utilitzar per anomenar primitives, unions, tuples i qualsevol altre tipus que, d'altra manera, s'hauria de definir a mà.
L'àlies no crea un tipus nou; més aviat, canvia el nom d'un tipus existent. L'àlies d'un primitiu no és realment pràctic, tot i que pot ser beneficiós per a la documentació.
Els àlies de tipus, com les interfícies, poden ser universals; tot el que heu de fer és afegir paràmetres de tipus i utilitzar-los al costat dret de la declaració d'àlies.
23. Què significa el terme "Variable d'abast"?
JavaScript admet variables d'àmbit local i global. L'abast és una col·lecció d'objectes, variables i funcions.
Un exemple de declaració d'una variable en dos àmbits és:
- Variable amb àmbit local: serveix com a objecte de funció per utilitzar-lo dins de les funcions.
- Variable amb abast global: aquest objecte finestra es pot utilitzar tant dins com fora de les funcions
24. Per a què serveix exactament noImplicitAny?
El tractament del compilador TypeScript dels tipus implícits del vostre projecte es veu alterat per la propietat noImplicitAny al fitxer de configuració tsconfig.json per als projectes TypeScript.
El senyalador noImplicitAny es pot establir com a true o false i sempre es pot canviar després de la inicialització. Atès que cada projecte és únic, no hi ha cap resposta correcta o incorrecta sobre quin hauria de ser aquest número.
Entendre les distincions entre els estats d'activació i desactivació de la bandera us pot ajudar a seleccionar quina configuració voleu utilitzar per a la bandera.
El compilador no determina el tipus d'una variable en funció de com s'utilitza si el senyalador noImplicitAny s'estableix en fals (el valor predeterminat). En canvi, el compilador defineix el tipus en qualsevol de manera predeterminada.
Tanmateix, si l'opció noImplicitAny s'estableix en true, el compilador farà un esforç per inferir el tipus i generarà un error en temps de compilació si no pot fer-ho.
25. Com varien els tipus d'unió i intersecció?
En lloc de generar nous tipus des de zero, les unions i els tipus d'intersecció us permeten compondre i barrejar tipus existents. Tant la unió com la intersecció tenen qualitats distintives que les fan perfectes per a determinats casos d'ús.
Un tipus que pot ser de diversos tipus es coneix com a tipus d'unió. La llista de tipus que s'utilitzaran en el nou tipus es divideix mitjançant el | símbol (barra vertical) en tipus d'unió.
Vegem una il·lustració:
D'altra banda, la intersecció es defineix com un tipus que fusiona molts tipus en un, integrant totes les característiques de cada tipus per formar un nou tipus. La llista de tipus que es combinaran es divideix en interseccions mitjançant el símbol &.
Examinem una il·lustració:
26. Com es defineix una paraula clau de declaració de TypeScript?
No hi ha fitxers de declaració TypeScript a les biblioteques o marcs de JavaScript. Tanmateix, heu d'utilitzar la paraula clau declare per utilitzar-les al fitxer TypeScript sense trobar cap error de compilació.
Quan voleu especificar una variable que ja podria existir en un altre lloc, feu servir la paraula clau declare a les declaracions i mètodes ambientals.
27. A TypeScript, què són els genèrics?
Una eina anomenada TypeScript Generics ofereix un mètode per produir peces reutilitzables. En lloc de treballar amb una sola forma de dades, pot desenvolupar components que poden funcionar amb una varietat de tipus de dades.
A més, ofereix seguretat de tipus sense sacrificar l'eficiència ni la productivitat. Podem construir classes genèriques, funcions genèriques, mètodes genèrics i interfícies genèriques gràcies als genèrics.
Els genèrics són col·leccions molt tipificades, ja que un paràmetre de tipus s'escriu entre claudàtors oberts () i tancats (>). Fa ús d'un tipus únic de variable de tipus anomenada T que significa tipus.
28. Què significa JSX a TypeScript?
JSX és un JavaScript legítim que es pot convertir des d'una sintaxi semblant a XML incrustable. Juntament amb el marc React, JSX va guanyar popularitat.
La compilació directa, la verificació de tipus i la inserció de JSX a JavaScript són compatibles amb TypeScript. Heu de donar al vostre fitxer l'extensió a.tsx i activar l'opció JSX si voleu utilitzar-lo.
29. Què són els ambients TypeScript i quan els he d'utilitzar?
El compilador s'informa sobre el codi font real que es troba en un altre lloc mitjançant declaracions ambientals.
Es trencarà sense cap avís previ si intentem utilitzar aquests codis font en temps d'execució però no estan presents. Els fitxers semblants a documents són fitxers de declaracions ambientals.
Si la font canvia, la documentació s'ha d'actualitzar i es produiran problemes del compilador si no es modifica el fitxer de declaració d'ambient.
A més, ens permet aprofitar biblioteques JavaScript conegudes que ja s'utilitzen àmpliament, com ara jQuery, AngularJS, NodeJS, etc.
30. Què entens per classe abstracta a TypeScript?
Les classes abstractes defineixen el contracte d'un objecte sense permetre la instanciació directa d'objectes. Tanmateix, una classe abstracta també podria oferir la informació d'implementació del seu membre.
Un o més membres abstractes es poden trobar en una classe abstracta. Els membres abstractes de la superclasse han de tenir una implementació proporcionada per qualsevol classe que ampliï la classe abstracta.
Fem una ullada a un exemple de TypeScript d'una classe abstracta i com una classe diferent podria estendre-la. Tot i que tant les classes Car i Bike de l'exemple següent amplien la classe Vehicle, cadascuna implementa la funció drive() d'una manera única.
31. Què és exactament un fitxer TypeScript Map?
Un fitxer de mapa font anomenat fitxer TypeScript Map conté dades sobre els nostres fitxers originals. Els fitxers de mapes d'origen, o fitxers .map, permeten que les eines s'assignin entre el codi JavaScript que surt i els fitxers font de TypeScript que l'han produït.
A més, aquests fitxers poden ser consumits pels depuradors, cosa que ens permet depurar el fitxer TypeScript en lloc del fitxer JavaScript.
32. A TypeScript, què són les assercions de tipus?
Tot i que l'asserció de tipus funciona de manera semblant a la difusió de tipus en altres idiomes com C# i Java, no realitza la verificació de tipus ni la reordenació de dades.
Tot i que l'asserció de tipus no té cap efecte en el temps d'execució, el càsting de tipus ofereix aquest suport. Les afirmacions de tipus, d'altra banda, només les utilitza el compilador i proporcionen una guia sobre com volem que s'examini el nostre codi.
Conclusió
En conclusió, esperem que aquestes preguntes d'entrevista de TypeScript us siguin útils, tant si sou un desenvolupador que es prepara per a una entrevista de feina com si un gestor de contractació que intenta trobar el millor sol·licitant.
Recordeu que el procés de contractació implica més que una experiència tècnica. Per assegurar-vos que aconseguiu (o localitzeu el sol·licitant adequat per a) la feina, les experiències passades i les habilitats interdisciplinàries són igualment crucials.
Moltes preguntes d'entrevistes de TypeScript són obertes i no tenen una única resposta correcta, així que tingueu-ho en compte.
Els entrevistadors estan interessats en la raó de les vostres respostes.
Estigueu sempre preparat per a consultes de seguiment que expliquen com heu arribat a la vostra resposta. Descriu el teu procés de pensament.
Deixa un comentari