hoangnguyen0403/agent-skills-standard-typescript-language
Apply modern TypeScript standards for type safety and maintainability. Use when working with types, interfaces, generics, enums, unions, or tsconfig settings.
This is a copy. The original lives at hoangnguyen0403/typescript-language.
npx skills add https://github.com/HoangNguyen0403/agent-skills-standard --skill typescript-language
as const. No runtime enum.typeof, instanceof, predicates.Partial, Pick, Omit, Record.readonly arrays/objects. Const Assertions: as const, satisfies.on${Capitalize<string>}.public. Use private/protected or #private.string & { __brand: 'Id' }.any: Use unknown or specific interface instead.Function: Use signature () => void.enum: Runtime cost.!: Avoid non-null assertion (!). Use narrowing (typeof, instanceof, if-checks).jest.Mocked<T> or as unknown as T.// 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 };
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.
For advanced type patterns and utility types:
See references/REFERENCE.md.
When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:
Take hoangnguyen0403/agent-skills-standard-typescript-language from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.