swe-programming-typescript
TypeScript coding standards from authoritative docs/explanation/software-engineering/programming-languages/typescript/ documentation
Best use case
swe-programming-typescript is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
TypeScript coding standards from authoritative docs/explanation/software-engineering/programming-languages/typescript/ documentation
Teams using swe-programming-typescript should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/swe-programming-typescript/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How swe-programming-typescript Compares
| Feature / Agent | swe-programming-typescript | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
TypeScript coding standards from authoritative docs/explanation/software-engineering/programming-languages/typescript/ documentation
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# TypeScript Coding Standards
## Purpose
Progressive disclosure of TypeScript coding standards for agents writing TypeScript code.
**Authoritative Source**: [docs/explanation/software-engineering/programming-languages/typescript/README.md](../../../docs/explanation/software-engineering/programming-languages/typescript/README.md)
**Usage**: Auto-loaded for agents when writing TypeScript code. Provides quick reference to idioms, best practices, and antipatterns.
## Quick Standards Reference
### Naming Conventions
**Types and Interfaces**: PascalCase
- Types: `UserAccount`, `PaymentDetails`
- Interfaces: `IPaymentProcessor` or `PaymentProcessor` (no prefix preferred)
- Type aliases: `type UserId = string`
**Functions and Variables**: camelCase
- Functions: `calculateTotal()`, `findUserById()`
- Variables: `userName`, `totalAmount`
- Constants: `UPPER_SNAKE_CASE` (`MAX_RETRIES`, `API_ENDPOINT`)
**Files**: kebab-case
- `user-account.ts`, `payment-processor.ts`
### Modern TypeScript Features
**Type Inference**: Let TypeScript infer when obvious
```typescript
const name = "John"; // string inferred
const count = 42; // number inferred
```
**Union Types**: Use for multiple possible types
```typescript
type Result = Success | Error;
type Status = "pending" | "completed" | "failed";
```
**Type Guards**: Use for type narrowing
```typescript
function isString(value: unknown): value is string {
return typeof value === "string";
}
```
**Generics**: Use for reusable type-safe code
```typescript
function identity<T>(value: T): T {
return value;
}
```
**Utility Types**: Leverage built-in utilities
- `Partial<T>`: Make all properties optional
- `Pick<T, K>`: Select specific properties
- `Omit<T, K>`: Remove specific properties
- `Readonly<T>`: Make all properties readonly
### Error Handling
**Result Pattern**: Prefer over throwing exceptions
```typescript
type Result<T, E> = { ok: true; value: T } | { ok: false; error: E };
```
**Error Types**: Define specific error types
```typescript
class ValidationError extends Error {
constructor(
public field: string,
message: string,
) {
super(message);
this.name = "ValidationError";
}
}
```
### Testing Standards
**Jest/Vitest**: Primary testing frameworks
- `describe()` for test suites
- `it()` or `test()` for individual tests
- `beforeEach()`, `afterEach()` for setup
**Type-safe Tests**: Ensure tests are type-checked
```typescript
it("should return user", () => {
const user: User = findUser("123");
expect(user.name).toBe("John");
});
```
### Security Practices
**No `any`**: Avoid `any` type
- Use `unknown` for truly unknown types
- Use generics for flexible typing
**Input Validation**: Validate external data
- Use Zod or similar for runtime validation
- Validate before processing
**XSS Prevention**: Sanitize user input
- Use framework escaping (React, Angular)
- Never use `dangerouslySetInnerHTML` without sanitization
## Comprehensive Documentation
For detailed guidance, refer to:
- **[Idioms](../../../docs/explanation/software-engineering/programming-languages/typescript/idioms.md)** - TypeScript-specific patterns
- **[Best Practices](../../../docs/explanation/software-engineering/programming-languages/typescript/best-practices.md)** - Clean code standards
- **[Anti-Patterns](../../../docs/explanation/software-engineering/programming-languages/typescript/anti-patterns.md)** - Common mistakes
## Test-Driven Development
TDD is required for all TypeScript code changes. Write the failing Vitest test first, confirm it
fails for the right reason, implement the minimum code to pass, then refactor. For TypeScript the
primary levels are unit (Vitest), integration (MSW for network boundaries), E2E (Playwright), and
property/fuzz (fast-check for invariants over generated inputs). Pick the cheapest level that
captures the behavior.
**Canonical reference**:
[Test-Driven Development Convention](../../../repo-governance/development/workflow/test-driven-development.md)
## Related Skills
- docs-applying-content-quality
- repo-practicing-trunk-based-development
## References
- [TypeScript README](../../../docs/explanation/software-engineering/programming-languages/typescript/README.md)
- [Functional Programming](../../../repo-governance/development/pattern/functional-programming.md)Related Skills
swe-programming-rust
Rust coding standards from authoritative docs/explanation/software-engineering/programming-languages/rust/ documentation
swe-programming-golang
Go coding standards from authoritative docs/explanation/software-engineering/programming-languages/golang/ documentation
swe-programming-fsharp
F# coding standards from authoritative docs/explanation/software-engineering/programming-languages/f-sharp/ documentation
swe-programming-csharp
C# coding standards from authoritative docs/explanation/software-engineering/programming-languages/c-sharp/ documentation
nx-workspace
Explore and understand Nx workspaces. USE WHEN answering questions about the workspace, projects, or tasks. ALSO USE WHEN an nx command fails or you need to check available targets/configuration before running a task. EXAMPLES: 'What projects are in this workspace?', 'How is project X configured?', 'What depends on library Y?', 'What targets can I run?', 'Cannot find configuration for task', 'debug nx task failure'.
nx-run-tasks
Helps with running tasks in an Nx workspace. USE WHEN the user wants to execute build, test, lint, serve, or run any other tasks defined in the workspace.
nx-plugins
Find and add Nx plugins. USE WHEN user wants to discover available plugins, install a new plugin, or add support for a specific framework or technology to the workspace.
nx-import
Import, merge, or combine repositories into an Nx workspace using nx import. USE WHEN the user asks to adopt Nx across repos, move projects into a monorepo, or bring code/history from another repository.
nx-generate
Generate code using nx generators. INVOKE IMMEDIATELY when user mentions scaffolding, setup, structure, creating apps/libs, or setting up project structure. Trigger words - scaffold, setup, create a ... app, create a ... lib, project structure, generate, add a new project. ALWAYS use this BEFORE calling nx_docs or exploring - this skill handles discovery internally.
monitor-ci
Monitor Nx Cloud CI pipeline and handle self-healing fixes. USE WHEN user says "monitor ci", "watch ci", "ci monitor", "watch ci for this branch", "track ci", "check ci status", wants to track CI status, or needs help with self-healing CI fixes. Prefer this skill over native CI provider tools (gh, glab, etc.) for CI monitoring — it integrates with Nx Cloud self-healing which those tools cannot access.
link-workspace-packages
Link workspace packages in monorepos (npm, yarn, pnpm, bun). USE WHEN: (1) you just created or generated new packages and need to wire up their dependencies, (2) user imports from a sibling package and needs to add it as a dependency, (3) you get resolution errors for workspace packages (@org/*) like "cannot find module", "failed to resolve import", "TS2307", or "cannot resolve". DO NOT patch around with tsconfig paths or manual package.json edits - use the package manager's workspace commands to fix actual linking.
swe-developing-frontend-ui
UI development skill covering design token usage, shadcn/ui + Radix composition patterns, accessibility requirements, anti-patterns catalog, and brand context for OrganicLever and OSE Platform. Auto-loads when working on TSX components, CSS, or UI design tasks.