CommunityProgramación y desarrollogithub.com

lobehub/typescript

Guía de estilo y seguridad de tipos de LobeHub para TypeScript. Úsala al editar archivos TS/TSX/MTS, corregir tipos, elegir entre interface y type, evitar any/object, import type, flujo asíncrono o ts-expect-error.

¿Qué es typescript?

Esta habilidad proporciona una guía de estilo y seguridad de tipos para TypeScript, basada en las mejores prácticas de LobeHub. Es útil para desarrolladores que trabajan con TypeScript en cualquier plataforma (CLI, IDE, etc.) y desean mantener un código consistente y libre de errores de tipo. La habilidad cubre aspectos clave como la elección entre interface y type, la evitación de tipos inseguros como any y object, el uso correcto de import type para evitar la dependencia en tiempo de ejecución, el manejo de flujos asíncronos, y el uso disciplinado de ts-expect-error. Al seguir esta guía, los equipos pueden reducir bugs, mejorar la legibilidad del código y aprovechar al máximo el sistema de tipos de TypeScript.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/lobehub/lobe-chat/tree/main/skills/typescript

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace typescript?

Guía de estilo y seguridad de tipos de LobeHub para TypeScript. Úsala al editar archivos TS/TSX/MTS, corregir tipos, elegir entre interface y type, evitar any/object, import type, flujo asíncrono o ts-expect-error.

Principios Generales

  • Prefiere interface sobre type para definiciones de objetos que puedan ser extendidas o implementadas. Usa type solo para uniones, intersecciones, tipos condicionales o alias de tipos primitivos.
  • Evita any y object: Usa tipos específicos o unknown si el tipo es desconocido. any desactiva la verificación de tipos.
  • Usa import type para importaciones que solo se usan como tipos. Esto evita que el import se incluya en el JavaScript generado.
  • Manejo de flujo asíncrono: Prefiere async/await sobre promesas encadenadas. Maneja errores con try/catch.
  • ts-expect-error: Úsalo solo como último recurso y con un comentario explicativo. Prefiere refactorizar el código para eliminar el error de tipo.

Ejemplos

// Bien: usar interface para objetos
interface Usuario {
  nombre: string;
  edad: number;
}

// Bien: usar type para uniones
type Resultado = "éxito" | "error";

// Mal: usar any
function procesar(dato: any): any { /* ... */ }

// Bien: usar unknown si el tipo es desconocido
function procesar(dato: unknown): string {
  if (typeof dato === "string") {
    return dato.toUpperCase();
  }
  return "desconocido";
}

// Bien: import type
import type { Usuario } from "./modelos";

// Bien: async/await
async function obtenerUsuario(id: number): Promise<Usuario> {
  try {
    const respuesta = await fetch(`/api/usuarios/${id}`);
    if (!respuesta.ok) throw new Error("Error al obtener usuario");
    return await respuesta.json();
  } catch (error) {
    console.error(error);
    throw error;
  }
}

Referencias

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Skills relacionados