Agent skill

TypeScript Tooling

Development tools, linting, and build configuration for TypeScript projects.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/tooling-hoangnguyen0403-agent-skills-standar-9

Metadata

Additional technical details for this skill

labels
tooling typescript eslint prettier testing
triggers
{
    "files": [
        "tsconfig.json",
        ".eslintrc.*",
        "jest.config.*",
        "package.json"
    ],
    "keywords": [
        "eslint",
        "prettier",
        "jest",
        "vitest",
        "build",
        "compile",
        "lint"
    ]
}

SKILL.md

TypeScript Tooling

Priority: P1 (OPERATIONAL)

Essential tooling for TypeScript development and maintenance.

Implementation Guidelines

  • Compiler: tsc for CI. ts-node/esbuild for dev.
  • Lint: ESLint + @typescript-eslint. Strict type checking.
  • Format: Prettier (on save + commit).
  • Test: Jest/Vitest > 80% coverage.
  • Build: tsup (libs), Vite/Webpack (apps).
  • Check: tsc --noEmit in CI.

Anti-Patterns

  • No Disable: Avoid // eslint-disable.
  • No Skip: Avoid skipLibCheck: true if possible.
  • No Ignore: Use @ts-expect-error > @ts-ignore.

ESLint Configuration

Strict Mode Requirement

CRITICAL: Every file in the project, including tests (.spec.ts), must adhere to strict type-checked rules. NEVER turn off @typescript-eslint/no-explicit-any or no-unsafe-* rules.

Common Linting Issues & Solutions

Request Object Typing

Problem: Using any for Express request objects or creating duplicate inline interfaces. Solution: Use the centralized interfaces in src/common/interfaces/request.interface.ts.

typescript
import { RequestWithUser } from 'src/common/interfaces/request.interface';

Unused Parameters

Problem: Function parameters marked as unused by linter. Solution: Prefix the parameter with an underscore (e.g., _data) or remove it. NEVER use eslint-disable.

Test Mock Typing

Problem: Jest mocks triggering unsafe type warnings when expect.any() or custom mocks are used. Solution: Cast the mock or expectation using as unknown as TargetType.

typescript
mockRepo.save.mockResolvedValue(result as unknown as User);

Configuration

json
// tsconfig.json
{
  "compilerOptions": {
    "strict": true,
    "noImplicitReturns": true,
    "noUnusedLocals": true
  }
}

Reference & Examples

For testing configuration and CI/CD setup: See references/REFERENCE.md.

Related Topics

best-practices | language

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results