Índice del contenido[Esconder][Espectáculo]
- 1. ¿Qué es exactamente TypeScript y en qué se diferencia de JavaScript?
- 2. ¿Cuáles son algunas características notables de TypeScript?
- 3. ¿Cuáles son algunos de los beneficios de usar TypeScript?
- 4. ¿Cuáles son algunos inconvenientes de usar TypeScript?
- 5. ¿Cuáles son exactamente los componentes de TypeScript?
- 6. ¿Puede explicar las interfaces en TypeScript?
- 7. ¿Qué son las variables en TypeScript y cómo se declaran de varias formas?
- 8. ¿Cómo se puede usar un subconjunto de una interfaz para generar un nuevo tipo?
- 9. ¿Qué quiere decir con 'cualquier' tipo y cuándo debo utilizarlos?
- 10. ¿Cómo es TypeScript un lenguaje con sintaxis de tipado estático opcional?
- 11. En TypeScript, ¿qué significan los módulos?
- 12. ¿Cómo funcionan las "enumeraciones" en TypeScript?
- 13. ¿Qué distingue a un módulo interno de un módulo externo?
- 14. ¿Qué significa la función anónima de TypeScript?
- 15. En TypeScript, ¿qué es un espacio de nombres y cómo se declara uno?
- 16. ¿Qué modificadores de acceso admite TypeScript?
- 17. ¿TypeScript permite la sobrecarga de funciones?
- 18. ¿Cómo permite TypeScript argumentos opcionales en las funciones?
- 19. ¿Cómo varían entre sí var, let y const?
- 20. En TypeScript, ¿describa los decoradores?
- 21. En TypeScript, ¿qué significa Mixins?
- 22. ¿Qué son exactamente los alias de tipo en TypeScript?
- 23. ¿Qué significa el término “variable de alcance”?
- 24. ¿Para qué se usa exactamente noImplicitAny?
- 25. ¿Cómo varían los tipos de unión e intersección entre sí?
- 26. ¿Cómo se define una palabra clave declarada de TypeScript?
- 27. En TypeScript, ¿qué son los genéricos?
- 28. ¿Qué significa JSX en TypeScript?
- 29. ¿Qué son los ambientes de TypeScript y cuándo debo utilizarlos?
- 30. ¿Qué quiere decir con clase abstracta en TypeScript?
- 31. ¿Qué es exactamente un archivo de mapa de TypeScript?
- 32. En TypeScript, ¿qué son las aserciones de tipo?
- Conclusión
Microsoft desarrolló y continúa admitiendo el lenguaje de programación TypeScript. Con la adición de escritura estática como opción, es un superconjunto sintáctico de JavaScript.
El lenguaje de desarrollo de aplicaciones a gran escala TypeScript compila JavaScript. Dado que TypeScript es un superconjunto de JavaScript, los programas escritos en JavaScript también son válidos en TypeScript.
Aquí hay una lista completa de las preguntas y respuestas más típicas de la entrevista de desarrollador de TypeScript en caso de que asista a una.
1. ¿Qué es exactamente TypeScript y en qué se diferencia de JavaScript?
Un superconjunto de JavaScript, TypeScript compila en JavaScript estándar. Desde un punto de vista conceptual, TypeScript y JavaScript son similares a SASS y CSS.
En otras palabras, TypeScript es JavaScript ES6 con algunas capacidades más. JavaScript es un lenguaje de secuencias de comandos más parecido a Python, mientras que TypeScript es un lenguaje de tipado estático y orientado a objetos comparable a Java y C#.
Las clases y las interfaces forman parte del diseño orientado a objetos de TypeScript, y la inferencia de tipos es una de las muchas herramientas disponibles gracias a su escritura estática.
JavaScript está escrito en un archivo con extensión .js, mientras que TypeScript está escrito en un archivo con extensión .ts.
A diferencia de JavaScript, el código TypeScript no se puede ejecutar directamente en un navegador ni en ninguna otra plataforma y los navegadores no lo entienden. La plataforma de destino luego ejecutará el código JavaScript simple que se generó a partir de los archivos .ts usando el transpiler de TypeScript.
2. ¿Cuáles son algunas características notables de TypeScript?
- La escritura estática es una función de TypeScript que ayuda a verificar el tipo durante la compilación. Entonces, incluso sin ejecutar el script, puede detectar errores en el código a medida que lo escribe.
- El DOM se puede modificar usando TypeScript para agregar o eliminar elementos.
- Cualquier sistema operativo, incluidos Windows, macOS y Linux, puede tener instalado el compilador de TypeScript.
- Clases, interfaces y módulos son algunas de las funcionalidades que ofrece TypeScript. Por lo tanto, puede crear código orientado a objetos tanto para el desarrollo del lado del cliente como del lado del servidor.
- La mayoría de las funciones de ECMAScript 2015 (ES 6, 7) ya están incluidas en TypeScript, incluida la clase, la interfaz, las funciones de flecha, etc.
- Si utiliza la escritura dinámica de JavaScript, TypeScript también es compatible con la escritura estática opcional.
3. ¿Cuáles son algunos de los beneficios de usar TypeScript?
- Cualquier motor o navegador de JavaScript puede ejecutar TypeScript, ya que es rápido, fácil de aprender y se ejecuta rápidamente.
- Comparte la misma sintaxis y semántica que JavaScript.
- Esto facilita la escritura más rápida del código de front-end por parte de los desarrolladores de back-end.
- Incorpora capacidades ES6 y ES7 que pueden función en JavaScript Motores ES5 como Node.js.
- Las bibliotecas de JavaScript existentes como Jquery, D3.js, etc. son compatibles a través del archivo de definición, que tiene la extensión .d.ts.
- Un script JavaScript que ya existe puede invocar el código TypeScript. También se integra a la perfección con los marcos y bibliotecas de JavaScript actuales.
4. ¿Cuáles son algunos inconvenientes de usar TypeScript?
- La codificación con TypeScript requiere un largo proceso de compilación.
- No admite clases que sean abstractas.
- La calidad de los archivos de definición de tipo es un problema.
- Cualquier biblioteca de terceros debe tener un archivo de definición para ser utilizada.
- Es necesario un paso de compilación para convertir TypeScript en JavaScript si queremos ejecutar la aplicación TypeScript en el navegador.
- Los desarrolladores web han utilizado JavaScript durante muchos años y TypeScript no proporciona nada nuevo.
5. ¿Cuáles son exactamente los componentes de TypeScript?
En TypeScript, hay tres categorías principales de componentes, que incluyen:
- Idioma: Incluye anotaciones de tipo, palabras clave y sintaxis.
- Compilador de mecanografiado: Este compilador (tsc) traduce las instrucciones de TypeScript a JavaScript.
- Servicio de lenguaje TypeScript: The Language Service ofrece aplicaciones similares a las de un editor como una segunda capa además del proceso básico de compilación. El servicio de idiomas admite el conjunto estándar de operaciones de edición comunes.
6. ¿Puede explicar las interfaces en TypeScript?
TypeScript usa interfaces para especificar la sintaxis de las entidades. En otras palabras, los formularios de datos como objetos o una matriz de elementos se pueden describir mediante interfaces. La palabra clave de la interfaz, el nombre de la interfaz y su definición se utilizan para declarar las interfaces. Examinemos la interfaz básica de un objeto de usuario.
El tipo de una variable se puede establecer mediante la interfaz (similar a cómo asigna tipos primitivos a una variable). Las propiedades de la interfaz serán entonces satisfechas por una variable del tipo Usuario.
Su proyecto TypeScript se beneficia de las interfaces porque brindan uniformidad. Además, las interfaces mejoran las herramientas de su proyecto al mejorar las capacidades de autocompletar de IDE y garantizar que se proporcionen los valores correctos a los constructores y métodos.
7. ¿Qué son las variables en TypeScript y cómo se declaran de varias formas?
Una variable es un área de memoria específicamente designada que se utiliza para almacenar valores. Se colocan dos puntos (:) después del nombre de la variable y va seguido del tipo cuando se declara una variable en TypeScript. Declaramos variables con la palabra clave var, al igual que en JavaScript.
Se deben observar ciertas pautas al declarar una variable en TypeScript:
- El nombre no puede comenzar con un número.
- El nombre de la variable debe contener letras o números.
- El símbolo de dólar ($) y el guión bajo (_) son los únicos caracteres especiales que se permiten en este campo.
8. ¿Cómo se puede usar un subconjunto de una interfaz para generar un nuevo tipo?
Al proporcionar un tipo o interfaz existente y elegir las claves que se excluirán del nuevo tipo, puede crear un nuevo tipo en TypeScript usando la omisión del tipo de utilidad.
El ejemplo que sigue muestra cómo construir un nuevo tipo llamado UserPreview que se basa en la interfaz de usuario pero excluye la propiedad de correo electrónico.
9. ¿Qué quiere decir con 'cualquier' tipo y cuándo debo utilizarlos?
A veces necesita guardar un valor en una variable, pero no está seguro del tipo de variable de antemano. El valor podría originarse a partir de la entrada del usuario o una solicitud de API, por ejemplo. Puede dar cualquier tipo de valor a un tipo de variable utilizando el tipo "cualquiera".
Cuando el tipo de una variable no se especifica explícitamente y el compilador no puede determinarlo a partir del contexto, TypeScript cree que la variable es de cualquier tipo.
10. ¿Cómo es TypeScript un lenguaje con sintaxis de tipado estático opcional?
Es posible indicarle al compilador que ignore el tipo de una variable en TypeScript, ya que opcionalmente se tipifica estáticamente. Se puede utilizar cualquier tipo de datos para asignar cualquier tipo de valor a la variable. Cuando se compila, TypeScript no proporcionará ninguna comprobación de errores.
11. En TypeScript, ¿qué significan los módulos?
Es efectivo agrupar variables, funciones, clases, interfaces, etc. relevantes usando módulos. Se puede usar, pero no en el ámbito global, solo dentro de su propio ámbito.
En esencia, no se puede acceder directamente a las variables, funciones, clases e interfaces definidas de un módulo desde fuera del módulo.
La palabra clave export se puede usar para crear un módulo, mientras que la palabra clave import se puede usar para incluir un módulo en otro módulo.
12. ¿Cómo funcionan las "enumeraciones" en TypeScript?
Un método para definir una colección de constantes con nombre es usar enumeraciones o tipos enumerados. Estas estructuras de datos tienen una longitud fija y una colección de valores fijos.
Cuando se representa una colección de alternativas para un valor dado en TypeScript, las enumeraciones se usan con frecuencia para describir las posibilidades usando un conjunto de pares clave/valor.
Veamos una ilustración de una enumeración utilizada para proporcionar una variedad de tipos de usuarios.
Las enumeraciones se convierten internamente en objetos JavaScript normales mediante TypeScript después de la compilación. Por lo tanto, el uso de enumeraciones es preferible al uso de varias variables const separadas.
Su código tiene seguridad de tipos y es más fácil de comprender debido a la agrupación que proporcionan las enumeraciones.
13. ¿Qué distingue a un módulo interno de un módulo externo?
Módulo Interno:
- Los módulos internos eran una característica de la iteración anterior de Typescript.
- El nombre y el cuerpo de los módulos internos se definen mediante ModuleDeclarations.
- Estos son miembros de otros módulos que son locales o exportados.
- Las clases, interfaces, funciones y variables se agrupan en módulos internos, que se pueden exportar a otro módulo.
Módulo externo:
- En la versión más reciente, los módulos externos se denominan módulos.
- Para crearlos, se usa un archivo fuente separado conocido como módulo externo, y cada uno tiene al menos una declaración de importación o exportación.
- En la versión más reciente, los módulos externos se denominan módulos.
- Las declaraciones internas de las definiciones de módulos se pueden ocultar usando módulos externos, dejando visibles solo los métodos y argumentos conectados a la variable definida.
14. ¿Qué significa la función anónima de TypeScript?
Las funciones clasificadas como anónimas carecen de un nombre de función como identificador. Estas rutinas se definen dinámicamente durante el tiempo de ejecución. Al igual que las funciones regulares, las funciones anónimas pueden tomar entradas y producir resultados.
Por lo general, no se puede acceder a una función anónima una vez que se ha creado. Las variables se pueden asignar a una función anónima.
15. En TypeScript, ¿qué es un espacio de nombres y cómo se declara uno?
El espacio de nombres agrupa lógicamente las funcionalidades. Estos conservan internamente el código heredado mecanografiado. Abarca los rasgos y las cosas con conexiones particulares.
Otro nombre para un espacio de nombres es un módulo interno. Las interfaces, clases, funciones y variables se pueden incluir en un espacio de nombres para proporcionar una colección de funcionalidad conectada.
16. ¿Qué modificadores de acceso admite TypeScript?
Los siguientes son ejemplos de cómo se pueden usar los modificadores de acceso público, privado y protegido en TypeScript para controlar la accesibilidad de un miembro de la clase:
- Público: el acceso está disponible para todos los miembros de la clase, todas sus clases descendientes y todas las instancias de la clase.
- Protegido: son accesibles para todos los miembros de la clase y todas sus subclases. Sin embargo, una instancia de clase no puede acceder.
- El acceso privado a ellos está restringido solo a los miembros de la clase.
Dado que JavaScript es útil, si no se proporciona un modificador de acceso, se supone que es público.
17. ¿TypeScript permite la sobrecarga de funciones?
Sí, TypeScript admite la sobrecarga de funciones. Pero ahora que se está haciendo es extraño. Por lo tanto, cuando se sobrecarga con TypeScript, solo hay una implementación con una variedad de firmas.
Mientras que la segunda firma contiene un parámetro de tipo texto, la primera firma solo tiene un parámetro de tipo número. La tercera función, que incluye un argumento de tipo any, contiene la implementación real.
Luego, la implementación determina el tipo del parámetro proporcionado y ejecuta una sección de código separada de acuerdo con esa determinación.
18. ¿Cómo permite TypeScript argumentos opcionales en las funciones?
Al contrario de JavaScript, si intenta llamar a una función sin especificar la cantidad precisa y los tipos de parámetros como se indica en su firma de función, el compilador de TypeScript generará un error.
Puede utilizar parámetros opcionales utilizando el símbolo de interrogación ('?') para solucionar este problema. Muestra que los parámetros opcionales se pueden indicar agregando un "?" a los que pueden o no recibir un valor.
19. ¿Cómo varían entre sí var, let y const?
TypeScript ofrece tres formas diferentes de declarar una variable, cada una con una aplicación sugerida.
var: Declara una variable global o con ámbito de función con las pautas de ámbito y comportamiento de las variables var de JavaScript. Las variables no necesitan que se establezcan sus valores cuando se declaran.
años: declara una variable de bloque de alcance local. Las variables Let no necesitan que se establezca el valor de una variable cuando se declaran. El término "variable local con ámbito de bloque" se refiere a una variable a la que solo se puede acceder desde dentro del bloque en el que está contenida, como una función, un bloque if/else o un bucle. Las variables let no se pueden leer ni escribir antes de que se declaren, en contraste con var.
const: declara un valor para una constante de ámbito de bloque que no se puede modificar después de que se haya inicializado. Las variables constantes deben inicializarse antes de declararse. Para variables que permanecen constantes durante toda su existencia, esto es óptimo.
20. En TypeScript, ¿describa los decoradores?
Un elemento de acceso, propiedad, parámetro, clase, función o decorador se puede declarar de una forma específica como decoradores. Los decoradores son funciones con el prefijo @expression que se invocarán en tiempo de ejecución con detalles sobre la declaración decorada.
La expresión debe evaluar una función para que los decoradores funcionen.
Los decoradores de TypeScript proporcionan el objetivo de agregar anotaciones e información de forma declarativa al código actual.
En nuestro archivo tsconfig.json o en la línea de comando, debe activar la opción del compilador experimentalDecorators para habilitar el soporte experimental para decoradores:
21. En TypeScript, ¿qué significa Mixins?
Los mixins son una técnica para crear clases a partir de partes reutilizables en Javascript y mezclar clases parciales para crear clases completas más complejas.
El concepto es sencillo: la función B acepta la clase A y devuelve una nueva clase con su funcionalidad agregada, a diferencia de la clase A que extiende la clase B para obtener su funcionalidad. La función B en este caso es una mezcla.
22. ¿Qué son exactamente los alias de tipo en TypeScript?
Los alias de tipo cambian el nombre de un tipo. Los alias de tipo, como las interfaces, se pueden usar para nombrar primitivos, uniones, tuplas y cualquier otro tipo que, de lo contrario, tendría que definirse a mano.
Aliasing no crea un nuevo tipo; más bien, cambia el nombre de un tipo existente. Asignar alias a una primitiva no es realmente práctico, aunque puede ser beneficioso para la documentación.
Los alias de tipo, como las interfaces, pueden ser universales; todo lo que tiene que hacer es agregar parámetros de tipo y usarlos en el lado derecho de la declaración de alias.
23. ¿Qué significa el término “variable de alcance”?
JavaScript admite variables de ámbito local y global. El alcance es una colección de objetos, variables y funciones.
Un ejemplo de declaración de una variable en dos ámbitos es:
- Variable con alcance local: sirve como un objeto de función para su uso dentro de las funciones.
- Variable con alcance global: este objeto de ventana se puede usar tanto dentro como fuera de las funciones
24. ¿Para qué se usa exactamente noImplicitAny?
La propiedad noImplicitAny del archivo de configuración tsconfig.json para proyectos de TypeScript altera el tratamiento del compilador de TypeScript de los tipos implícitos de su proyecto.
El indicador noImplicitAny se puede establecer en verdadero o falso y siempre se puede cambiar después de la inicialización. Dado que cada proyecto es único, no hay una respuesta correcta o incorrecta sobre cuál debería ser este número.
Comprender las distinciones entre los estados activado y desactivado de la bandera puede ayudarlo a seleccionar qué configuración usar para la bandera.
El compilador no determina el tipo de una variable en función de cómo se usa si el indicador noImplicitAny se establece en falso (el valor predeterminado). En cambio, el compilador establece el tipo en cualquiera de forma predeterminada.
Sin embargo, si la opción noImplicitAny se establece en verdadero, el compilador hará un esfuerzo por inferir el tipo y generará un error en tiempo de compilación si no puede hacerlo.
25. ¿Cómo varían los tipos de unión e intersección entre sí?
En lugar de generar nuevos tipos desde cero, los tipos de uniones e intersecciones le permiten componer y mezclar tipos existentes. Tanto la unión como la intersección tienen cualidades distintivas que las hacen perfectas para ciertos casos de uso.
Un tipo que puede ser uno de varios tipos se denomina tipo de unión. La lista de tipos que se utilizarán en el nuevo tipo se divide mediante el | (barra vertical) símbolo en tipos de unión.
Veamos una ilustración:
Por otro lado, la intersección se define como un tipo que fusiona muchos tipos en uno, integrando todas las características de cada tipo para formar un nuevo tipo. La lista de tipos que se fusionarán se divide en intersecciones mediante el símbolo &.
Examinemos una ilustración:
26. ¿Cómo se define una palabra clave declarada de TypeScript?
No hay archivos de declaración de TypeScript en las bibliotecas o marcos de JavaScript. Sin embargo, debe utilizar la palabra clave declare para usarlas en el archivo TypeScript sin encontrar errores de compilación.
Cuando desee especificar una variable que ya podría existir en otro lugar, use la palabra clave declare en declaraciones y métodos ambientales.
27. En TypeScript, ¿qué son los genéricos?
Una herramienta llamada TypeScript Generics ofrece un método para producir piezas reutilizables. En lugar de trabajar con una sola forma de datos, puede desarrollar componentes que pueden operar con una variedad de tipos de datos.
Además, ofrece seguridad de tipo sin sacrificar la eficiencia o la productividad. Podemos construir clases genéricas, funciones genéricas, métodos genéricos e interfaces genéricas gracias a los genéricos.
Los genéricos son colecciones con muchos tipos, ya que un parámetro de tipo se escribe entre paréntesis de apertura () y cierre (>). Hace uso de un tipo único de variable de tipo llamado T que significa tipos.
28. ¿Qué significa JSX en TypeScript?
JSX es un JavaScript legítimo que se puede convertir a partir de una sintaxis similar a XML incrustable. Junto con el framework React, JSX ganó popularidad.
TypeScript admite la compilación directa, la verificación de tipos y la incrustación de JSX en JavaScript. Debe darle a su archivo una extensión.tsx y activar la opción JSX si desea utilizarlo.
29. ¿Qué son los ambientes de TypeScript y cuándo debo utilizarlos?
El compilador recibe información sobre el código fuente real que se encuentra en otro lugar a través de declaraciones ambientales.
Se romperá sin previo aviso si intentamos utilizar estos códigos fuente en tiempo de ejecución pero no están presentes. Los archivos tipo documento son archivos de declaraciones ambientales.
Si la fuente cambia, la documentación debe actualizarse y se producirán problemas con el compilador si no se cambia el archivo de declaración ambiental.
Además, nos permite aprovechar bibliotecas de JavaScript conocidas que ya se usan ampliamente, como jQuery, AngularJS, NodeJS, etc.
30. ¿Qué quiere decir con clase abstracta en TypeScript?
Las clases abstractas definen el contrato de un objeto sin permitir la instanciación directa del objeto. Sin embargo, una clase abstracta también podría ofrecer la información de implementación de sus miembros.
Uno o más miembros abstractos se pueden encontrar en una clase abstracta. Los miembros abstractos de la superclase deben tener una implementación proporcionada por cualquier clase que amplíe la clase abstracta.
Echemos un vistazo a un ejemplo de TypeScript de una clase abstracta y cómo una clase diferente podría extenderla. Aunque las clases Car y Bike en el siguiente ejemplo amplían la clase Vehicle, cada una implementa la función drive() de una manera única.
31. ¿Qué es exactamente un archivo de mapa de TypeScript?
Un archivo de mapa de origen llamado archivo de mapa de TypeScript contiene datos sobre nuestros archivos originales. Los archivos de mapas de origen, o archivos .map, permiten que las herramientas se asignen entre el código JavaScript que se genera y los archivos de origen de TypeScript que lo produjeron.
Además, los depuradores pueden consumir estos archivos, lo que nos permite depurar el archivo TypeScript en lugar del archivo JavaScript.
32. En TypeScript, ¿qué son las aserciones de tipo?
Si bien la aserción de tipos funciona de manera similar a la conversión de tipos en otros lenguajes como C# y Java, no lleva a cabo la verificación de tipos ni la reorganización de datos.
Si bien la aserción de tipos no tiene efecto en el tiempo de ejecución, la conversión de tipos ofrece este soporte. Las aserciones de tipo, por otro lado, solo las utiliza el compilador y brindan orientación sobre cómo queremos que se examine nuestro código.
Conclusión
En conclusión, esperamos que estas preguntas de la entrevista de TypeScript le sean útiles, ya sea que sea un desarrollador que se prepara para una entrevista de trabajo o un gerente de contratación que intenta encontrar al mejor candidato.
Recuerde que el proceso de reclutamiento involucra más que solo experiencia técnica. Para asegurarse de conseguir (o localizar al candidato adecuado para) el trabajo, las experiencias pasadas y las habilidades blandas son igualmente cruciales.
Muchas de las preguntas de la entrevista de TypeScript son abiertas y no tienen una sola respuesta correcta, así que tenlo en cuenta.
Los entrevistadores están interesados en la lógica detrás de sus respuestas.
Esté siempre listo para consultas de seguimiento explicando cómo llegó a su respuesta. Describa su proceso de pensamiento.
Deje un comentario