Índice analítico[Ocultar][Mostrar]
- 1. Que é exactamente TypeScript e en que se diferencia de JavaScript?
- 2. Cales son algunhas das características notables de TypeScript?
- 3. Cales son algunhas das vantaxes de usar TypeScript?
- 4. Cales son algúns inconvenientes de usar TypeScript?
- 5. Cales son exactamente os compoñentes de TypeScript?
- 6. Podes explicar as interfaces en TypeScript?
- 7. Que son as variables en TypeScript e como se declaran de varias maneiras?
- 8. Como se pode usar un subconxunto dunha interface para xerar un novo tipo?
- 9. Que queres dicir con "calquera" tipo e cando debo utilizalos?
- 10. Como é TypeScript unha linguaxe con sintaxe opcional de tipificación estática?
- 11. En TypeScript, que significan os módulos?
- 12. Como funcionan os "enums" en TypeScript?
- 13. Que distingue un módulo interno dun módulo externo?
- 14. Que significa a función anónima de TypeScript?
- 15. En TypeScript, que é un espazo de nomes e como o declaras?
- 16. Que modificadores de acceso admite TypeScript?
- 17. Permite TypeScript a sobrecarga de funcións?
- 18. Como permite TypeScript argumentos opcionais nas funcións?
- 19. Como varían var, let e const entre si?
- 20. En TypeScript, describir decoradores?
- 21. En TypeScript, que significan Mixins?
- 22. Que son exactamente os alias de tipo en TypeScript?
- 23. Que significa o termo “Variable de alcance”?
- 24. Para que serve exactamente noImplicitAny?
- 25. Como varían os tipos de unión e intersección entre si?
- 26. Como se define unha palabra clave de declaración de TypeScript?
- 27. En TypeScript, que son os xenéricos?
- 28. Que significa JSX en TypeScript?
- 29. Que son TypeScript Ambients e cando debo utilizalos?
- 30. Que queres dicir con clase abstracta en TypeScript?
- 31. Que é exactamente un ficheiro TypeScript Map?
- 32. En TypeScript, que son as asercións de tipo?
- Conclusión
Microsoft desenvolveu e segue admitindo a linguaxe de programación TypeScript. Coa opción de dixitación estática, é un superconjunto sintáctico de JavaScript.
A linguaxe de desenvolvemento de aplicacións a gran escala TypeScript compila JavaScript. Dado que TypeScript é un superconxunto de JavaScript, os programas escritos en JavaScript tamén son válidos en TypeScript.
Aquí tes unha lista completa das preguntas e respostas máis típicas das entrevistas para desenvolvedores de TypeScript no caso de que asistiras a unha.
1. Que é exactamente TypeScript e en que se diferencia de JavaScript?
Un superconxunto de JavaScript, TypeScript compila a JavaScript estándar. Desde un punto de vista conceptual, TypeScript e JavaScript son similares a SASS e CSS.
Noutras palabras, TypeScript é JavaScript ES6 con algunhas capacidades máis. JavaScript é unha linguaxe de secuencias de comandos máis semellante a Python, mentres que TypeScript é unha linguaxe de escritura estática e orientada a obxectos comparable a Java e C#.
As clases e interfaces forman parte do deseño orientado a obxectos de TypeScript, e a inferencia de tipos é unha das moitas ferramentas dispoñibles grazas á súa escritura estática.
JavaScript está escrito nun ficheiro cunha extensión .js, mentres que TypeScript está escrito nun ficheiro cunha extensión .ts.
Ao contrario de JavaScript, o código TypeScript non se pode executar directamente nun navegador ou en calquera outra plataforma e os navegadores non o entenden. A plataforma de destino executará entón o JavaScript simple que se xerou a partir dos ficheiros .ts mediante o transpiler de TypeScript.
2. Cales son algunhas das características notables de TypeScript?
- A escritura estática é unha característica de TypeScript que axuda a verificar o tipo durante a compilación. Así, aínda sen executar o script, pode detectar erros no código mentres o escribe.
- O DOM pódese modificar mediante TypeScript para engadir ou eliminar elementos.
- Calquera sistema operativo, incluído Windows, macOS e Linux, pode ter instalado o compilador TypeScript.
- As clases, as interfaces e os módulos son algunhas das funcionalidades que ofrece TypeScript. Así, pode crear código orientado a obxectos tanto para o desenvolvemento do lado do cliente como do servidor.
- A maioría das funcións de ECMAScript 2015 (ES 6, 7) xa están incluídas en TypeScript, incluíndo a clase, a interface, as funcións de frecha, etc.
- Se está a utilizar a escritura dinámica de JavaScript, TypeScript tamén admite a escritura estática opcional.
3. Cales son algunhas das vantaxes de usar TypeScript?
- Calquera motor ou navegador JavaScript pode executar TypeScript xa que é rápido, fácil de aprender e execútase rapidamente.
- Comparte a mesma sintaxe e semántica que JavaScript.
- Isto facilita a escritura máis rápida do código front-end por parte dos desenvolvedores back-end.
- Incorpora capacidades ES6 e ES7 que poden función en JavaScript Motores ES5 como Node.js.
- As bibliotecas de JavaScript existentes, como Jquery, D3.js, etc., son compatibles a través do ficheiro Definition, que ten a extensión.d.ts.
- Un script JavaScript que xa existe pode invocar o código TypeScript. Tamén se integra perfectamente cos marcos e bibliotecas de JavaScript actuais.
4. Cales son algúns inconvenientes de usar TypeScript?
- A codificación con TypeScript require un longo proceso de compilación.
- Non admite clases abstractas.
- A calidade dos ficheiros de definición de tipos é un problema.
- Calquera biblioteca de terceiros debe ter un ficheiro de definición para poder ser utilizada.
- É necesario un paso de compilación para converter TypeScript en JavaScript se queremos executar a aplicación TypeScript no navegador.
- Os desenvolvedores web utilizan JavaScript durante moitos anos e TypeScript non ofrece nada novo.
5. Cales son exactamente os compoñentes de TypeScript?
En TypeScript, hai tres categorías principais de compoñentes, incluíndo:
- Lingua: Inclúe anotacións para o tipo, as palabras clave e a sintaxe.
- Compilador TypeScript: As instrucións de TypeScript son traducidas a JavaScript por este compilador (tsc).
- Servizo de linguaxe TypeScript: The Language Service ofrece aplicacións tipo editor como unha segunda capa ademais do proceso básico do compilador. O servizo de idiomas admite o conxunto estándar de operacións de edición comúns.
6. Podes explicar as interfaces en TypeScript?
TypeScript usa interfaces para especificar a sintaxe das entidades. Noutras palabras, as formas de datos como obxectos ou unha matriz de elementos pódense describir mediante interfaces. A palabra clave interface, o nome da interface e a súa definición úsanse para declarar interfaces. Examinemos a interface básica dun obxecto de usuario.
O tipo dunha variable pódese definir mediante a interface (semellante a como se lle asignan tipos primitivos a unha variable). As propiedades da interface serán seguidas por unha variable do tipo Usuario.
O teu proxecto TypeScript benefíciase das interfaces porque proporcionan uniformidade. Ademais, as interfaces melloran as ferramentas do teu proxecto mellorando as capacidades de autocompletado do IDE e garantindo que se fornecen os valores correctos aos construtores e métodos.
7. Que son as variables en TypeScript e como se declaran de varias maneiras?
Unha variable é unha área de memoria específicamente designada que se usa para almacenar valores. Os dous puntos (:) colócanse despois do nome da variable e van seguidos do tipo cando se declara unha variable en TypeScript. Declaramos variables coa palabra clave var, igual que en JavaScript.
Deben observarse certas pautas ao declarar unha variable en Typescript:
- O nome non pode comezar cun número.
- O nome da variable debe conter letras ou números.
- O símbolo do dólar ($) e o guión baixo (_) son os únicos caracteres especiais permitidos neste campo.
8. Como se pode usar un subconxunto dunha interface para xerar un novo tipo?
Fornecendo un tipo ou interface existente e escollendo as claves que se queren excluír do novo tipo, pode crear un novo tipo en TypeScript usando o tipo de utilidade omitir.
O exemplo que segue mostra como construír un novo tipo chamado UserPreview baseado na interface de usuario pero que exclúe a propiedade do correo electrónico.
9. Que queres dicir con "calquera" tipo e cando debo utilizalos?
Ás veces cómpre gardar un valor nunha variable, pero non está seguro do tipo da variable previamente. O valor podería orixinarse da entrada do usuario ou dunha solicitude de API, por exemplo. Podes dar calquera tipo de valor a un tipo de variable usando o tipo "calquera".
Cando o tipo dunha variable non se especifica explícitamente e o compilador non pode determinalo a partir do contexto, TypeScript cre que a variable é de tipo calquera.
10. Como é TypeScript unha linguaxe con sintaxe opcional de tipificación estática?
É posible indicarlle ao compilador que ignore o tipo dunha variable en TypeScript xa que, opcionalmente, se escribe de forma estática. Calquera tipo de datos pódese usar para asignar calquera tipo de valor á variable. Cando se compila, TypeScript non proporcionará ningunha comprobación de erros.
11. En TypeScript, que significan os módulos?
É eficaz agrupar variables relevantes, funcións, clases, interfaces, etc. mediante módulos. Pódese usar, pero non no ámbito global, só dentro do seu propio ámbito.
En esencia, non se pode acceder directamente ás variables, funcións, clases e interfaces definidas dun módulo desde fóra do módulo.
A palabra clave de exportación pódese usar para construír un módulo, mentres que a palabra clave de importación pódese usar para incluír un módulo noutro módulo.
12. Como funcionan os "enums" en TypeScript?
Un método para definir unha colección de constantes con nome é usar enumeracións ou tipos enumerados. Estas estruturas de datos teñen unha lonxitude fixa e unha colección de valores fixos.
Cando se representa unha colección de alternativas para un determinado valor en TypeScript, as enumeracións úsanse con frecuencia para describir as posibilidades mediante un conxunto de pares clave/valor.
Vexamos unha ilustración dunha enumeración utilizada para proporcionar unha variedade de tipos de usuarios.
As enumeracións convértense internamente en obxectos JavaScript normais mediante TypeScript despois da compilación. Polo tanto, o uso de enumeracións é preferible ao uso de varias variables const separadas.
O teu código é seguro e é máis fácil de comprender debido á agrupación que proporcionan as enumeracións.
13. Que distingue un módulo interno dun módulo externo?
Módulo interno:
- Os módulos internos eran unha característica da iteración anterior de Typescript.
- O nome e o corpo dos módulos internos defínense mediante ModuleDeclarations.
- Estes son membros doutros módulos que son locais ou exportados.
- As clases, interfaces, funcións e variables agrúpanse en módulos internos, que se poden exportar a outro módulo.
Módulo externo:
- Na versión máis recente, os módulos externos denomínanse módulos.
- Para crealos úsase un ficheiro fonte separado coñecido como módulo externo e cada un ten polo menos unha declaración de importación ou exportación.
- Na versión máis recente, os módulos externos denomínanse módulos.
- As declaracións internas das definicións dos módulos pódense ocultar mediante módulos externos, deixando só os métodos e argumentos conectados á variable definida visibles.
14. Que significa a función anónima de TypeScript?
As funcións clasificadas como anónimas carecen dun nome de función como identificador. Estas rutinas defínense dinámicamente durante o tempo de execución. Do mesmo xeito que as funcións habituais, as funcións anónimas poden tomar entradas e producir resultados.
Unha función anónima adoita ser inalcanzable unha vez creada. As variables pódense asignar a unha función anónima.
15. En TypeScript, que é un espazo de nomes e como o declaras?
O espazo de nomes agrupa loxicamente as funcionalidades. Estes conservan internamente o código legado mecanoscrito. Abarca os trazos e cousas con conexións particulares.
Outro nome para un espazo de nomes é un módulo interno. As interfaces, clases, funcións e variables pódense incluír nun espazo de nomes para proporcionar unha colección de funcionalidades conectadas.
16. Que modificadores de acceso admite TypeScript?
Os seguintes son exemplos de como se poden usar os modificadores de acceso público, privado e protexido en TypeScript para controlar a accesibilidade dun membro da clase:
- Público: o acceso está dispoñible para todos os membros da clase, todas as súas clases descendentes e todas as instancias da clase.
- Protexidos: son accesibles para todos os membros da clase e todas as súas subclases. Non obstante, unha instancia de clase non pode acceder.
- O acceso privado a eles só está restrinxido aos membros da clase.
Dado que JavaScript é útil, se non se dá un modificador de acceso, suponse que é público.
17. Permite TypeScript a sobrecarga de funcións?
Si, TypeScript admite a sobrecarga de funcións. Pero agora que se está a facer é raro. Polo tanto, cando se sobrecarga con TypeScript, só hai unha implementación cunha variedade de sinaturas.
Mentres que a segunda sinatura contén un parámetro de texto tipo, a primeira sinatura só ten un parámetro de número de tipo. A terceira función, que inclúe un argumento de tipo any, contén a implementación real.
A implementación determina entón o tipo do parámetro proporcionado e executa unha sección de código separada de acordo con esa determinación.
18. Como permite TypeScript argumentos opcionais nas funcións?
Ao contrario de JavaScript, se tentas chamar a unha función sen especificar a cantidade precisa e os tipos de parámetros tal e como se indica na sinatura da función, o compilador TypeScript xerará un erro.
Podes utilizar parámetros opcionais utilizando o símbolo do signo de interrogación ('?') para evitar este problema. Mostra que os parámetros opcionais pódense indicar engadindo un "?" a aqueles que poidan recibir ou non un valor.
19. Como varían var, let e const entre si?
TypeScript ofrece tres formas diferentes de declarar unha variable, cada unha cunha aplicación suxerida.
foi: Declara unha variable global ou de ámbito de función co comportamento e as directrices de ámbito das variables var de JavaScript. As variables non precisan que se establezan os seus valores cando se declaran.
deixar: declara unha variable de bloque de ámbito local. Permitir que as variables non necesiten establecer o valor dunha variable cando se declaran. O termo "variable local de ámbito de bloque" refírese a unha variable á que só se pode acceder desde dentro do bloque no que está contida, como unha función, un bloque if/else ou un bucle. Permitir que as variables non se poidan ler ou escribir antes de que sexan declaradas, en contraste con var.
const: Declara un valor para unha constante de ámbito de bloque que non se pode alterar despois de inicializarla. As variables const deben inicializarse antes de ser declaradas. Para as variables que permanecen constantes durante toda a súa existencia, isto é óptimo.
20. En TypeScript, describir decoradores?
Un accesorio, unha propiedade, un parámetro, unha clase, unha función ou un decorador pódense declarar de xeito específico como decoradores. Os decoradores son funcións co prefixo @expression que se invocarán en tempo de execución con detalles sobre a declaración decorada.
A expresión debe avaliar unha función para que os decoradores funcionen.
Os decoradores de TypeScript proporcionan o obxectivo de engadir anotacións e información de forma declarativa ao código actual.
No noso ficheiro tsconfig.json ou na liña de comandos, debes activar a opción do compilador experimentalDecorators para activar o soporte experimental para os decoradores:
21. En TypeScript, que significan Mixins?
Os mixins son unha técnica para crear clases a partir de partes reutilizables en Javascript e mesturar clases parciais para crear clases completas máis complexas.
O concepto é sinxelo: a función B acepta a clase A e devolve unha nova clase coa súa funcionalidade engadida, en oposición á clase A que estende a clase B para obter a súa funcionalidade. A función B neste caso é unha mestura.
22. Que son exactamente os alias de tipo en TypeScript?
Os alias de tipo cambian o nome dun tipo. Os alias de tipo, como as interfaces, pódense usar para nomear primitivas, unións, tuplas e calquera outro tipo que doutro xeito terían que ser definidos a man.
O aliasing non crea un novo tipo; máis ben, cambia o nome dun tipo existente. Aliasar un primitivo non é realmente práctico, aínda que pode ser beneficioso para a documentación.
Os alias de tipo, como as interfaces, poden ser universais; todo o que tes que facer é engadir parámetros de tipo e usalos no lado dereito da declaración de alias.
23. Que significa o termo “Variable de alcance”?
JavaScript admite variables de ámbito local e global. O ámbito é unha colección de obxectos, variables e funcións.
Un exemplo de declaración dunha variable en dous ámbitos é:
- Variable con ámbito local: serve como obxecto de función para o seu uso dentro das funcións.
- Variable con alcance global: este obxecto de fiestra pódese usar tanto dentro como fóra das funcións
24. Para que serve exactamente noImplicitAny?
A propiedade noImplicitAny do ficheiro de configuración tsconfig.json para proxectos TypeScript modifica o tratamento do compilador TypeScript dos tipos implícitos do teu proxecto.
A marca noImplicitAny pódese definir como verdadeiro ou falso e sempre se pode cambiar despois da inicialización. Dado que cada proxecto é único, non hai unha resposta correcta ou incorrecta sobre cal debería ser este número.
Comprender as distincións entre os estados de activación e desactivación da bandeira pode axudarche a seleccionar a configuración que queres usar para a bandeira.
O compilador non determina o tipo dunha variable en función de como se usa se a marca noImplicitAny está definida como false (o predeterminado). O tipo é definido como calquera por defecto polo compilador.
Non obstante, se a opción noImplicitAny está definida como verdadeiro, o compilador fará un esforzo para inferir o tipo e xerará un erro de compilación se non é capaz de facelo.
25. Como varían os tipos de unión e intersección entre si?
En lugar de xerar novos tipos desde cero, as unións e os tipos de intersección permítenche compoñer e mesturar tipos existentes. Tanto a unión como a intersección teñen calidades distintivas que as fan perfectas para certos casos de uso.
Un tipo que pode ser de varios tipos denomínase tipo de unión. A lista de tipos que se utilizarán no novo tipo divídese mediante o | (barra vertical) símbolo en tipos de unión.
Vexamos unha ilustración:
Por outra banda, a intersección defínese como un tipo que fusiona moitos tipos nun só, integrando todas as características de cada tipo para formar un novo tipo. A lista de tipos que se combinarán divídese en interseccións usando o símbolo &.
Examinemos unha ilustración:
26. Como se define unha palabra clave de declaración de TypeScript?
Non hai ficheiros de declaración TypeScript nas bibliotecas ou marcos de JavaScript. Non obstante, debes utilizar a palabra clave declare para usalas no ficheiro TypeScript sen atopar erros de compilación.
Cando desexa especificar unha variable que xa podería existir noutro lugar, use a palabra clave declare nas declaracións e métodos ambientais.
27. En TypeScript, que son os xenéricos?
Unha ferramenta chamada TypeScript Generics ofrece un método para producir pezas reutilizables. En lugar de traballar con só unha forma de datos, pode desenvolver compoñentes que poidan funcionar con diversos tipos de datos.
Ademais, ofrece seguridade de tipo sen sacrificar a eficiencia nin a produtividade. Podemos construír clases xenéricas, funcións xenéricas, métodos xenéricos e interfaces xenéricas grazas aos xenéricos.
Os xenéricos son coleccións moi tipificadas xa que un parámetro de tipo está escrito entre corchetes abertos () e pechados (>). Fai uso dun tipo único de variable tipo chamado T que significa tipos.
28. Que significa JSX en TypeScript?
JSX é un JavaScript lexítimo que se pode converter a partir dunha sintaxe similar a XML incrustable. Xunto co framework React, JSX gañou popularidade.
TypeScript admite a compilación directa, a verificación de tipos e a incorporación de JSX en JavaScript. Debes darlle a extensión a.tsx ao teu ficheiro e activar a opción JSX se queres utilizalo.
29. Que son TypeScript Ambients e cando debo utilizalos?
O compilador infórmase sobre o código fonte real que se atopa noutro lugar mediante declaracións ambientais.
Romperase sen previo aviso se tentamos utilizar estes códigos fonte durante a execución pero non están presentes. Os ficheiros similares a documentos son ficheiros de declaracións ambientais.
Se a fonte cambia, a documentación debe actualizarse e produciranse problemas co compilador se non se modifica o ficheiro de declaración ambiental.
Ademais, permítenos aproveitar as coñecidas bibliotecas de JavaScript que xa son moi utilizadas, como jQuery, AngularJS, NodeJS, etc.
30. Que queres dicir con clase abstracta en TypeScript?
As clases abstractas definen o contrato dun obxecto sen permitir a instanciación directa do obxecto. Non obstante, unha clase abstracta tamén podería ofrecer a información de implementación do seu membro.
Un ou máis membros abstractos pódense atopar nunha clase abstracta. Os membros abstractos da superclase deben ter unha implementación proporcionada por calquera clase que estenda a clase abstracta.
Vexamos un exemplo de TypeScript dunha clase abstracta e como unha clase diferente podería ampliala. Aínda que tanto as clases de Coche como de Bicicleta no exemplo seguinte estenden a clase de Vehículo, cada unha implementa a función drive() dunha forma única.
31. Que é exactamente un ficheiro TypeScript Map?
Un ficheiro de mapa de orixe chamado ficheiro de mapa de TypeScript contén datos sobre os nosos ficheiros orixinais. Os ficheiros de mapas de orixe, ou ficheiros .map, permiten que as ferramentas mapeen entre o código JavaScript que sae e os ficheiros fonte TypeScript que o produciron.
Ademais, estes ficheiros poden ser consumidos polos depuradores, o que nos permite depurar o ficheiro TypeScript en lugar do ficheiro JavaScript.
32. En TypeScript, que son as asercións de tipo?
Aínda que a aserción de tipo funciona de xeito similar ao tipocasting noutras linguaxes como C# e Java, non realiza a verificación de tipo nin a reorganización de datos.
Aínda que a afirmación de tipo non ten ningún efecto no tempo de execución, o tipo casting ofrece este soporte. As afirmacións de tipo, por outra banda, só son utilizadas polo compilador e proporcionan orientación sobre como queremos que se examine o noso código.
Conclusión
En conclusión, esperamos que estas preguntas de entrevista de TypeScript che sexan útiles, tanto se es un programador que se prepara para unha entrevista de traballo ou un xestor de contratación que intenta atopar o mellor candidato.
Lembre que o proceso de contratación implica algo máis que coñecementos técnicos. Para asegurarse de conseguir (ou localizar o candidato axeitado para) o traballo, as experiencias pasadas e as habilidades sociais son igualmente cruciais.
Moitas preguntas das entrevistas de TypeScript son abertas e non teñen unha única resposta correcta, así que téñao en conta.
Os entrevistadores están interesados na razón das súas respostas.
Estea sempre preparado para realizar consultas de seguimento que expliquen como chegaches á túa resposta. Describe o teu proceso de pensamento.
Deixe unha resposta