typescript

lobehub/lobe-chat · updated Apr 8, 2026

$npx skills add https://github.com/lobehub/lobe-chat --skill typescript
0 commentsdiscussion
summary

typescript

skill.md

TypeScript Code Style Guide

Types and Type Safety

  • Avoid explicit type annotations when TypeScript can infer
  • Avoid implicitly any; explicitly type when necessary
  • Use accurate types: prefer Record<PropertyKey, unknown> over object or any
  • Prefer interface for object shapes (e.g., React props); use type for unions/intersections
  • Prefer as const satisfies XyzInterface over plain as const
  • Prefer @ts-expect-error over @ts-ignore over as any
  • Avoid meaningless null/undefined parameters; design strict function contracts
  • Prefer ES module augmentation (declare module '...') over namespace; do not introduce namespace-based extension patterns
  • When a type needs extensibility, expose a small mergeable interface at the source type and let each feature/plugin augment it locally instead of centralizing all extension fields in one registry file
  • For package-local extensibility patterns like PipelineContext.metadata, define the metadata fields next to the processor/provider/plugin that reads or writes them

Async Patterns

  • Prefer async/await over callbacks or .then() chains
  • Prefer async APIs over sync ones (avoid *Sync)
  • Use promise-based variants: import { readFile } from 'fs/promises'
  • Use Promise.all, Promise.race for concurrent operations where safe

Imports

  • This project uses simple-import-sort/imports and consistent-type-imports (fixStyle: 'separate-type-imports')
  • Separate type imports: always use import type { ... } for type-only imports, NOT import { type ... } inline syntax
  • When a file already has import type { ... } from a package and you need to add a value import, keep them as two separate statements:
    import type { ChatTopicBotContext } from '@lobechat/types';
    import { RequestTrigger } from '@lobechat/types';
    
  • Within each import statement, specifiers are sorted alphabetically by name

Code Structure

  • Prefer object destructuring
  • Use consistent, descriptive naming; avoid obscure abbreviations
  • Replace magic numbers/strings with well-named constants
  • Defer formatting to tooling

UI and Theming

  • Use @lobehub/ui, Ant Design components instead of raw HTML tags
  • Design for dark mode and mobile responsiveness
  • Use antd-style token system instead of hard-coded colors

Performance

  • Prefer for…of loops over index-based for loops
  • Reuse existing utils in packages/utils or installed npm packages
  • Query only required columns from database

Time Consistency

  • Assign Date.now() to a constant once and reuse for consistency

Logging

  • Never log user private information (API keys, etc.)
  • Don't use import { log } from 'debug' directly (logs to console)
  • Use console.error in catch blocks instead of debug package
  • Always log the error in .catch() callbacks — silent .catch(() => fallback) swallows failures and makes debugging impossible

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.670 reviews
  • Zaid Thomas· Dec 28, 2024

    typescript has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Yuki Rahman· Dec 20, 2024

    Registry listing for typescript matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Aisha Khanna· Dec 16, 2024

    typescript is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Evelyn Ramirez· Dec 12, 2024

    typescript fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Yusuf Rao· Dec 4, 2024

    Useful defaults in typescript — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Layla Johnson· Nov 23, 2024

    typescript is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Dev Okafor· Nov 19, 2024

    typescript fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Zaid Patel· Nov 7, 2024

    Useful defaults in typescript — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Evelyn Abbas· Nov 3, 2024

    typescript has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Diya Garcia· Oct 26, 2024

    I recommend typescript for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

showing 1-10 of 70

1 / 7