Skip to content
Development
Skill

/typescript-language

Apply modern TypeScript standards for type safety and maintainability. Use when working with types, interfaces, generics, enums, unions, or tsconfig settings.

From plugin
agent-skills-standard
567200 skills21 agents21 commands1 MCP
Install
$ npx -y skills add hoangnguyen0403/agent-skills-standard --skill typescript-language --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/typescript-language

Context preview

The summary Claude sees to decide when to auto-load this skill.

Apply modern TypeScript standards for type safety and maintainability. Use when working with types, interfaces, generics, enums, unions, or tsconfig settings.

SKILL.md

typescript-language.SKILL.md
name: typescript-language
description: Apply modern TypeScript standards for type safety and maintainability. Use when working with types, interfaces, generics, enums, unions, or tsconfig settings.
metadata:
  triggers:
    files:
    - '**/*.ts'
    - '**/*.tsx'
    - 'tsconfig.json'
    keywords:
    - type
    - interface
    - generic
    - enum
    - union
    - intersection
    - readonly
    - const
    - namespace

TypeScript Language Patterns

**Priority: P0 (CRITICAL)**

Implementation Guidelines

  • **Type Annotations**: Explicit params/returns. Infer locals.
  • **Interfaces vs Types**: interface for APIs (supports declaration merging). type for unions, intersection types, mapped/conditional types.
  • **Strict Mode**: strict: true. Null Safety: ?. and ?? — Use narrowing instead. Avoid non-null assertion (!) operator.
  • **Enums**: Literal unions or `as const`. **No runtime `enum`**.
  • **Generics**: Reusable, type-safe code.
  • **Type Guards**: `typeof`, `instanceof`, predicates.
  • **Utility Types**: `Partial`, `Pick`, `Omit`, `Record`.
  • **Immutability**: `readonly` arrays/objects. Const Assertions: `as const`, `satisfies`.
  • **Template Literals**: `on${Capitalize<string>}`.
  • **Discriminated Unions**: Literal kind property to narrow type safely. Switch on discriminant.
  • **Advanced**: Mapped, Conditional, Indexed types.
  • **Access**: Default `public`. Use `private`/`protected` or `#private`.
  • **Branded Types**: `string & { __brand: 'Id' }`.

Anti-Patterns

  • **NEVER use `any`**: Use `unknown` or specific interface instead.
  • **No `Function`**: Use signature `() => void`.
  • **No `enum`**: Runtime cost.
  • **No `!`**: Avoid non-null assertion (!). Use narrowing (typeof, instanceof, if-checks).
  • **No Lint Disable**: Fix root cause; never suppress.

Testing

  • **Mocking**: Use `jest.Mocked<T>` or `as unknown as T`.
  • **Checklist**: Check method existence, match error constants, satisfy required properties.
  • **References**: See [references/TESTING.md](references/TESTING.md) for common issues/solutions.

Code

// Branded Type
type UserId = string & { __brand: 'Id' };

// Satisfies (Validate + Infer)
const cfg = { port: 3000 } satisfies Record<string, number>;

// Discriminated Union
type Result<T> = { kind: 'ok'; data: T } | { kind: 'err'; error: Error };

Verification

After any type change that crosses module boundaries or involves generics, unions, conditional types, or branded types: call `getDiagnostics` (typescript-lsp MCP tool) to confirm no type errors before finalizing.

References

For advanced type patterns and utility types: See [references/REFERENCE.md](references/REFERENCE.md).

Canonical response anchors

When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:

  • Discriminated Union
  • kind
Read more
Ships withagent-skills-standard

The portable SDLC standards layer for AI coding agents. Sync once, then work in your own runtime.

Get the whole plugin

Other skills on agent-skills-standard.