Development tools, linting, and build config for TypeScript. Use when configuring ESLint, Prettier, Jest, Vitest, tsconfig, or any TS build tooling. (triggers: tsconfig.json, .eslintrc.*, jest.config.*, package.json, eslint, prettier, jest, vitest, build, compile, lint)
84
80%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./.github/skills/typescript/typescript-tooling/SKILL.mdEssential tooling for TypeScript development and maintenance.
tsc for CI builds; esbuild or ts-node for development.ESLint with @typescript-eslint/recommended. Enable strict type checking.Prettier via lint-staged and .prettierrc.Vitest (or Jest) for unit/integration testing. Target > 80% line coverage.tsup (for library bundling) or Vite (for web applications).tsconfig.json has strict: true, noImplicitAny: true, and esModuleInterop: true.tsc --noEmit explicitly in the build pipeline to catch type errors.@ts-expect-error over @ts-ignore for documented edge-cases.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.
Problem: Using any for Express request objects or creating duplicate inline interfaces.
Solution: Use the centralized interfaces in src/common/interfaces/request.interface.ts.
import { RequestWithUser } from 'src/common/interfaces/request.interface';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.
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.
mockRepo.save.mockResolvedValue(result as unknown as User);// tsconfig.json
{
"compilerOptions": {
"strict": true,
"noImplicitReturns": true,
"noUnusedLocals": true
}
}After editing any .ts / .tsx file:
getDiagnostics (typescript-lsp MCP tool) — surfaces type errors in real time.tsc --noEmit in CI — catches project-wide errors LSP may miss.eslint --fix — auto-fix formatting and lint violations.getDiagnostics is the fastest feedback loop. Use it before every commit on modified files.
LSP Exploration: Use getHover to inspect inferred types inline. Use getReferences before renaming any symbol to verify all call sites.
See references/REFERENCE.md for CI config, test setup, and advanced ESLint rules.
19a1140
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.