TypeScript
v5.xJavaScript 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 sincronizadosCaracterí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