julianobarbosa/claude-code-skills108 installs
writing-typescript
Idiomatic TypeScript development. Use when writing TypeScript code, Node.js services, React apps, or discussing TS patterns. Emphasizes strict typing, composition, and modern tooling (bun/vite).
How do I install this agent skill?
npx skills add https://github.com/julianobarbosa/claude-code-skills --skill writing-typescriptIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides comprehensive guidelines and patterns for modern TypeScript development, emphasizing strict typing and security best practices like validation at boundaries. No malicious patterns or security risks were detected.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- Runlayerpass
4 files scanned · No issues
- ZeroLeakspass
Score: 93/100 · 2 sections analyzed
What does this agent skill do?
TypeScript Development (2025)
Core Principles
- Strict typing: Enable all strict checks
- Parse, don't validate: Transform untrusted data at boundaries
- Composition over inheritance: Small, focused functions
- Explicit over implicit: No
any, preferunknown
Toolchain
bun # Runtime + package manager (fast)
vite # Frontend bundling
vitest # Testing
eslint # Linting
prettier # Formatting
Quick Patterns
Type Guards
function isUser(value: unknown): value is User {
return typeof value === "object" && value !== null && "id" in value;
}
Discriminated Unions
type Result<T, E = Error> = { ok: true; value: T } | { ok: false; error: E };
function processResult<T>(result: Result<T>): T {
if (result.ok) return result.value;
throw result.error;
}
Utility Types
type UserUpdate = Partial<User>;
type UserSummary = Pick<User, "id" | "name">;
type UserWithoutPassword = Omit<User, "password">;
type ReadonlyUser = Readonly<User>;
tsconfig.json Essentials
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"noUncheckedIndexedAccess": true,
"exactOptionalPropertyTypes": true,
"noImplicitReturns": true,
"isolatedModules": true
}
}
References
- PATTERNS.md - Code patterns and style
- REACT.md - React component patterns
- TESTING.md - Testing with vitest
Commands
bun install # Install deps
bun run build # Build
bun test # Test
bun run lint # Lint
bun run format # Format
Gotchas
import typewithverbatimModuleSyntaxand named exports: type-only import of a value triggers errors. Fix:import { type Foo } from "mod"(inline marker).as conston object: readonly AND literal-narrowed — different fromas Foo(asserts type) orsatisfies Foo(validates without widening).satisfiesvalidates without widening;aswidens — usingaswhere you wantedsatisfiesloses literal types silently.Array<T>.includes(x)requiresxto be of typeT— narrowing-from-union doesn't work; the standard fix is a type-predicate helper.strictNullChecks: falsemakesTmeanT | null | undefinedfor ALL types — partial migrations leave types that lie about nullability.tsconfig.jsonextendsdoesn't recursively mergecompilerOptions.paths— child paths REPLACE parent paths, not merge.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/julianobarbosa/claude-code-skills/writing-typescript">View writing-typescript on skillZs</a>