馃捇 Integraci贸n con TypeScript

Curso Next.js — Integraci贸n con TypeScript

馃捇 Integraci贸n con TypeScript

Aprende c贸mo a帽adir y configurar TypeScript en tu proyecto Next.js para mejorar la productividad, la calidad del c贸digo y evitar errores comunes en tiempo de desarrollo.


馃З ¿Qu茅 es TypeScript?

TypeScript es un superconjunto de JavaScript que a帽ade tipado est谩tico al lenguaje. Esto significa que puedes definir tipos de datos (como string, number o tipos personalizados) para detectar errores antes de ejecutar el c贸digo.

Next.js soporta TypeScript de forma nativa, por lo que puedes integrarlo f谩cilmente en cualquier momento del desarrollo.


⚙️ Configuraci贸n inicial

Si creas un proyecto nuevo con Next.js, puedes habilitar TypeScript desde el inicio:

npx create-next-app@latest --typescript

Si ya tienes un proyecto existente, solo necesitas instalar las dependencias necesarias:

npm install --save-dev typescript @types/react @types/node

Luego, ejecuta el servidor de desarrollo:

npm run dev

Next.js detectar谩 autom谩ticamente los archivos y crear谩 un archivo de configuraci贸n tsconfig.json como este:

{
  "compilerOptions": {
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve",
    "incremental": true
  },
  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
  "exclude": ["node_modules"]
}
      
馃挕 Consejo: El modo strict activa comprobaciones m谩s rigurosas para un c贸digo m谩s seguro.

馃 Ejemplo b谩sico con TypeScript

Vamos a crear un componente sencillo con tipado de propiedades.

馃搫 app/components/Saludo.tsx
type Props = {
  nombre: string;
  edad?: number; // Propiedad opcional
};

export default function Saludo({ nombre, edad }: Props) {
  return (
    <div>
      <h3>Hola, {nombre}!</h3>
      {edad && <p>Tienes {edad} a帽os.</p>}
    </div>
  );
}
      
馃搫 app/page.tsx
import Saludo from './components/Saludo';

export default function Home() {
  return (
    <main className="p-4 text-center">
      <Saludo nombre="Jorge" edad={30} />
      <Saludo nombre="Mar铆a" />
    </main>
  );
}
      

Aqu铆, el componente Saludo recibe un tipo definido llamado Props, que describe las propiedades esperadas. Si intentas pasar un tipo incorrecto (por ejemplo, edad="treinta"), TypeScript mostrar谩 un error inmediato.


馃彈️ Tipos avanzados en Next.js

TypeScript tambi茅n es 煤til para tipar funciones asincr贸nicas, llamadas a API y componentes de servidor.

馃搫 app/api/usuarios/route.ts
import { NextResponse } from 'next/server';

type Usuario = {
  id: number;
  nombre: string;
  email: string;
};

export async function GET() {
  const usuarios: Usuario[] = [
    { id: 1, nombre: 'Ana', email: 'ana@mail.com' },
    { id: 2, nombre: 'Luis', email: 'luis@mail.com' },
  ];

  return NextResponse.json(usuarios);
}
      

Aqu铆 usamos un tipo personalizado Usuario para asegurar que la respuesta del endpoint siempre siga la estructura esperada.


馃殌 Beneficios de usar TypeScript en Next.js

  • ✅ Detecci贸n temprana de errores de tipo
  • 馃摎 Autocompletado y documentaci贸n autom谩tica en el editor
  • 馃敀 C贸digo m谩s mantenible y predecible
  • 馃 Mejor integraci贸n con IDEs como VS Code

馃З Conclusi贸n

Integrar TypeScript en tu proyecto Next.js es sencillo y aporta enormes ventajas para la escalabilidad del c贸digo. Puedes combinarlo con API Routes, Server Components y React Hooks para un desarrollo m谩s robusto y profesional.

Publicar un comentario

0 Comentarios