Volver a Documentación
TypeScript

TypeScript

v5.x

JavaScript con tipado estático y strict mode

Descripción

TypeScript es el lenguaje de programación de todos los proyectos WicSecure. Su tipado estático detecta errores en compilación, mejora el autocompletado del IDE y hace el código mantenible a largo plazo en equipos.

Uso en WicSecure

Todos los proyectos usan TypeScript en modo strict. Los tipos compartidos se definen en packages/shared con Zod, garantizando consistencia entre API y UI. Nunca usamos JavaScript puro en ningún archivo del proyecto.

Configuración clave

typescriptconfig
// tsconfig.json — configuración strict WicSecure
{
  "compilerOptions": {
    "strict": true,
    "noUncheckedIndexedAccess": true,
    "exactOptionalPropertyTypes": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    "target": "ES2022",
    "module": "ESNext",
    "moduleResolution": "bundler",
    "paths": {
      "@wicsecure/shared": ["../../packages/shared/src"]
    }
  }
}

Ejemplo de uso

typescript
// packages/shared/src/schemas/user.ts
import { z } from 'zod'

export const UserSchema = z.object({
  id:        z.string().uuid(),
  email:     z.string().email(),
  name:      z.string().min(2).max(100),
  role:      z.enum(['admin', 'user', 'viewer']),
  createdAt: z.coerce.date(),
})

export type User = z.infer<typeof UserSchema>

// Usado tanto en el backend (NestJS) como el frontend (Next.js)
// garantizando que los tipos siempre estén sincronizados

Características clave

  • Strict mode: nullish checks, exact optional types
  • Generics, union types, mapped types y template literals
  • Zod para validación en runtime + inferencia de tipos
  • Path aliases para imports limpios
  • Compatible con todo el ecosistema NPM