TypeScript
JavaScript
Tipos
Desenvolvimento
React Native
Mobile

TypeScript para aplicaciones: guía de desarrollo mecanografiado

TypeScript agrega tipos a JavaScript. Para las aplicaciones, esto significa menos errores, mejor DX y código más fácil de mantener. Esta guía presenta cómo utilizar TypeScript en el desarrollo móvil.

¿Qué es TypeScript?

Definición

Superconjunto de JavaScript con tipos estáticos.

Relación con JS

Todo JS válido es TS válido.

Compilación

Se compila en JavaScript.

Adopción

Crecimiento masivo. Estándar para proyectos serios.

¿Por qué mecanografiar?

Detectar errores temprano

Errores en tiempo de compilación, no en tiempo de ejecución.

Autocompletar

IDE sabe lo que es posible.

Refactorización

Cambios seguros a gran escala.

Documentación

Los tipos son documentación viva.

Escala de equipo

Varios desarrolladores alineados.

Tipos básicos

Primitivos

cadena, número, booleano, nulo, indefinido.

matrices

número[], Matriz.

Objetos

{ nombre: cadena; edad: número }.

###Cualquiera

Exclusión voluntaria de tipos. Evitar.

Desconocido

Como seguro cuando no lo sabes.

Interfaces y tipos

Interfaz

Define la forma de los objetos.

Escriba el alias

Nombre para cualquier tipo.

###Diferencia

La interfaz se extiende, escriba para uniones.

Cuándo utilizar

Interfaz para objetos, tipo para composición.

Tipos avanzados

###Unión

cadena | número.

Intersección

Tipo A y Tipo B.

Genéricos

Array, función que funciona con cualquier tipo.

Tipos literales

"éxito" | "error".

Tipos de utilidades

Parcial, Requerido, Seleccionar, Omitir.

TypeScript en reaccionar nativo

###Configuración

Plantilla TypeScript disponible.

###Componentes

Accesorios y estado mecanografiados.

Navegación

Reaccionar navegación con tipos.

Estado

Redux/Zustand con tipos.

###API

Respuestas escritas.

Componentes de escritura

Interfaz de accesorios

Accesorios de interfaz {título: cadena; onPress: () => nulo; }

Accesorios opcionales

¿título?: cadena.

Accesorios predeterminados

Valores por defecto con desestructuración.

###Niños

Reaccionar.ReactNode.

API de escritura

Tipos de respuesta

interfaz Usuario { id: cadena; nombre: cadena; }

Genéricos

función asíncrona buscar(url: cadena): Promesa

Zod/Sí

Validación en tiempo de ejecución + tipos.

Gestión del Estado

Redux

createSlice con tipos.

Zustand

Interfaz de tienda.

Contexto

Tipo de valor de contexto.

Tipos de navegación

Reaccionar navegación

StackParamList para rutas escritas.

Parámetros de ruta

Parámetros escritos entre pantallas.

usoNavegación

Gancho mecanografiado.

Configuración

tsconfig.json

Opciones de construcción.

modo estricto

Máxima seguridad. Usar siempre.

Alias de ruta

@/components para importaciones limpias.

Migración de JS a TS

Gradual

Cambie el nombre de .js a .ts de forma incremental.

permitirJs

Permitir JS durante la migración.

cualquier temporal

Úselo para migrar rápidamente y elimínelo más tarde.

Estricto más tarde

Habilite estricto después de migrar.

Patrones

Sindicatos discriminados

tipo Estado = { estado: 'cargando' } | { estado: 'éxito'; fecha: Fecha }.

Controles exhaustivos

Switch que garantiza todos los casos.

Afirmaciones constantes

como constante para literales.

Errores comunes

cualquier lugar

Pierde beneficios de tipo.

Ignorar errores

// @ts-ignorar innecesariamente.

Escritura excesiva

Tipos demasiado complejos.

No usar estricto

Omite validaciones importantes.

Herramientas

Código VS

Excelente soporte nativo.

ESLint

@ typescript-eslint para linting.

Más bonita

Formato consistente.

##Rendimiento

Tiempo de compilación

Puede ser lento en proyectos grandes.

Tiempo de ejecución

Cero gastos generales. Se eliminan los tipos.

Tamaño del paquete

Igual que JavaScript.

Conclusión

TypeScript es una inversión que se paga en calidad y productividad. Para las aplicaciones, significa menos errores en producción, refactorización segura y una incorporación más fácil de nuevos desarrolladores.

##Preguntas frecuentes

1) ¿Es TypeScript más lento? Compilación si. En tiempo de ejecución no hay diferencia.

2) ¿Necesito escribir todo? TypeScript infiere mucho. Escriba según sea necesario.

3) ¿Es válido para un proyecto pequeño? Sí. Beneficios desde el principio.

4) ¿Cómo empezar con un proyecto existente? Poco a poco. Archivo por archivo.

5) ¿TypeScript funciona con React Native? Perfectamente. Plantilla oficial disponible.

Lea también