# Rulebook Typescript

> TypeScript development with strict mode, Vitest testing, ESLint linting, and CI/CD best practices. Use when working on TypeScript projects, writing tests, configuring linting, or setting up build pipelines.

- Skill: `majiayu000/rulebook-typescript` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/rulebook-typescript`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/rulebook-typescript/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/rulebook-typescript

---


# TypeScript Development Standards

## Quality Check Commands

Run these commands after every implementation:

```bash
npm run type-check        # TypeScript type checking
npm run lint              # ESLint (0 warnings required)
npm run format            # Prettier formatting
npm test                  # Run all tests
npm run test:coverage     # Coverage check (95%+ required)
npm run build             # Build verification
```

## TypeScript Configuration

Use TypeScript 5.3+ with strict mode:

```json
{
  "compilerOptions": {
    "target": "ES2022",
    "module": "ESNext",
    "moduleResolution": "node",
    "strict": true,
    "esModuleInterop": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true
  }
}
```

## Code Quality Rules

1. **No `any` type** - Use `unknown` with type guards
2. **Strict null checks** - Handle null/undefined explicitly
3. **Type guards over assertions** - Avoid `as` keyword
4. **95%+ test coverage** - Required for all new code

## Testing with Vitest

```typescript
import { describe, it, expect } from 'vitest';

describe('myFunction', () => {
  it('should handle valid input', () => {
    expect(myFunction('input')).toBe('expected');
  });
});
```

## ESLint Setup

```json
{
  "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
  "parser": "@typescript-eslint/parser",
  "rules": {
    "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
    "@typescript-eslint/no-explicit-any": "warn"
  }
}
```

