typescript
TypeScript strict patterns and best practices.
Skill by gentleman-programming
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/camiloandresgtruniandes-typescript
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/typescript
What's inside
- Skill name
typescript- Description
- TypeScript strict patterns and best practices. Trigger: When writing TypeScript code - types, interfaces, generics.
- License
- Apache-2.0
- Metadata
- author: gentleman-programming · version: 1.0
- Instructions
- 101 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
## Const Types Pattern (REQUIRED)
```typescript
// ✅ ALWAYS: Create const object first, then extract type
const STATUS = {
ACTIVE: "active",
INACTIVE: "inactive",
PENDING: "pending",
} as const;
type Status = (typeof STATUS)[keyof typeof STATUS];
// ❌ NEVER: Direct union types
type Status = "active" | "inactive" | "pending";
```
**Why?** Single source of truth, runtime values, autocomplete, easier refactoring.
## Flat Interfaces (REQUIRED)
```typescript
// ✅ ALWAYS: One level depth, nested objects → dedicated interface
interface UserAddress {
street: string;
city: string;
}
interface User {
id: string;
name: string;
address: UserAddress; // Reference, not inline
}
interface Admin extends User {
permissions: string[];
}
// ❌ NEVER: Inline nested objects
interface User {
address: { street: string; city: string }; // NO!
}
```
## Never Use `any`
```typescript
// ✅ Use unknown for truly unknown types
function parse(input: unknown): User {
if (isUser(input)) return input;
throw new Error("Invalid input");
}
// ✅ Use generics for flexible types
function first<T>(arr: T[]): T | undefined {
return arr[0];
}
// ❌ NEVER
function parse(input: any): any { }
```
## Utility Types
```typescript
Pick<User, "id" | "name"> // Select fields
Omit<User, "id"> // Exclude fields
Partial<User> // All optional
Required<User> // All required
Readonly<User> // All readonly
Record<string, User> // Object type
Extract<Union, "a" | "b"> // Extract from union
Exclude<Union, "a"> // Exclude from union
NonNullable<T | null> // Remove null/undefined
ReturnType<typeof fn> // Function return type
Parameters<typeof fn> // Function params tuple
```
## Type Guards
```typescript
function isUser(value: unknown): value is User {
return (
typeof value === "object" &&
value !== null &&
"id" in value &&
"name" in value
);
}
```
## Import Types
```typescript
import type { User } from "./types";
import { createUser, type Config } from "./utils";
```
## Keywords
typescript, ts, types, interfaces, generics, strict mode, utility typesFrom CamiloAndresGTRUniandes/lucy-ai, Apache-2.0.
More from CamiloAndresGTRUniandes/lucy-ai
- 0.605score
igniteui-angular-theming
imported-and-adapted-by-lucy-camilo
Ignite UI for Angular theming: palettes, Sass themes, typography, elevations, component tokens, dark/light themes, spacing, sizing, and roundness.
SkillBFreshness: B★ 19Claude Code +9 - 0.605score
igniteui-angular-grids
imported-and-adapted-by-lucy-camilo
Ignite UI for Angular data grids: flat, tree, hierarchical, pivot, grid lite, columns, editing, selection, grouping, export, remote data, paging, state, sizing.
SkillBFreshness: B★ 19Claude Code +9 - 0.605score
igniteui-angular-generate-from-image-design
imported-and-adapted-by-lucy-camilo
Implement Angular views from design images using Ignite UI Angular components and theming.
SkillBFreshness: B★ 19Claude Code +9 - 0.605score
igniteui-angular-components
imported-and-adapted-by-lucy-camilo
Ignite UI for Angular non-grid UI components: setup, forms, layouts, feedback, data display, directives, charts, Dock/Layout/Tile managers.
SkillBFreshness: B★ 19Claude Code +9 - 0.605score
azure-devops-cli
imported-and-adapted-by-lucy-camilo
Manage Azure DevOps resources via CLI including projects, repos, pipelines, builds, pull requests, work items, artifacts, and service endpoints.
SkillBFreshness: B★ 19Claude Code +9 - 0.604score
lucy-agent
lucy-ai
Lucy-ai's own agent ecosystem installer, updater, and verifier.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
ado-effort-estimation
imported-and-adapted-by-lucy-camilo
Estimate Azure Boards work with a mandatory clarifying-question gate and story-point guardrails.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
git-commit
imported-and-adapted-by-lucy-camilo
Create git commits with conventional commit message analysis, safe staging, and logical grouping.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
dotnet10-csharp14
lucy-camilo
Project-agnostic .NET 10 and C# 14 best practices: field keyword, null-conditional assignment, extension members, unbound generic nameof, runtime…
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
csharp-dotnet
lucy-camilo
C# and .NET patterns for OpenClaw.
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
find-skills
imported-and-adapted-by-lucy-camilo
Discover, evaluate, and install agent skills when the user asks for new capabilities, asks whether a skill exists, shares a skill archive, or wants help…
SkillBFreshness: B★ 19Claude Code +9 - 0.603score
issue-creation
imported-and-adapted-by-lucy-camilo
Create clear issue drafts with reproducible context, acceptance criteria, and definition of done.
SkillBFreshness: B★ 19Claude Code +9
Signals
- Stars
- 19
- Forks
- 2
- Open issues
- 0
- Last commit (this folder)
- Apr 27, 2026 (6 months ago)
- Last release
- Jul 31, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0
- License
- Apache-2.0
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from gentleman-programming
- 0.724score
gentleman-bubbletea
gentleman-programming
Bubbletea TUI patterns for Gentleman.Dots installer.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.723score
engram-backlog-triage
gentleman-programming
Backlog triage protocol for Engram: audit open issues and PRs, classify each item, infer maintainer ideology from comments, and produce an actionable…
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-commit-hygiene
gentleman-programming
Commit and branch naming standards for Engram contributors, enforced by GitHub rulesets.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-architecture-guardrails
gentleman-programming
Architecture guardrails for Engram across local store, cloud sync, dashboard, and plugins.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-branch-pr
gentleman-programming
PR creation workflow for Engram following the issue-first enforcement system.
SkillAFreshness: A★ 7.6KClaude Code +9 - 0.720score
engram-business-rules
gentleman-programming
Product and business-rule guardrails for Engram.
SkillAFreshness: A★ 7.6KClaude Code +9
Cite this page
typescript skill. Agent Mart. https://agentmart.dev/skills/camiloandresgtruniandes-typescript (last updated 2026-10-24)