with one click
typescript-language
Apply modern TypeScript standards for type safety and maintainability. Use when working with types, interfaces, generics, enums, unions, or tsconfig settings.
Menu
Apply modern TypeScript standards for type safety and maintainability. Use when working with types, interfaces, generics, enums, unions, or tsconfig settings.
Standardize BRD and BRD-lite discovery for business goals, stakeholder impact, current-to-future state, and measurable value outcomes. Use when creating BRD, business case, project justification, ROI narrative, or AS-IS to TO-BE scope.
Standardize PRD discovery and drafting for product scope, user outcomes, requirement IDs, and acceptance criteria. Use when creating PRD, product requirements, feature specification, or acceptance criteria plan.
Standardize SRS and FRS specifications for technical behavior, interfaces, data contracts, quality constraints, and verification mapping. Use when writing SRS, functional specification, system behavior requirements, API/data contracts, or non-functional thresholds.
Clarify a rough product or engineering idea into a BRD-lite brief (Why) with measurable business value.
Turn an approved PRD or implementation goal into SRS/FRS technical requirements (How), architecture, contracts, and verification decisions.
Plan a feature from BRD-lite brief or clear intent into PRD (What), decisions, implementation plan, and task slices.
| 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"]}} |
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.