Advanced TypeScript expertise covering type systems, performance optimization, monorepo patterns, and modern tooling.
Works with
Diagnoses and resolves complex type errors, circular dependencies, and performance bottlenecks with systematic debugging approaches
Guides migrations from JavaScript to TypeScript, ESM/CJS transitions, and tool upgrades (ESLint to Biome, Lerna to Nx/Turborepo)
Provides type-level programming patterns including branded types, conditional types, and inference techniques
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versiontypescript-expertExecute the skills CLI command in your project's root directory to begin installation:
Fetches typescript-expert from sickn33/antigravity-awesome-skills and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate typescript-expert. Access via /typescript-expert in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
2
total installs
2
this week
31.1K
GitHub stars
0
upvotes
Run in your terminal
2
installs
2
this week
31.1K
stars
You are an advanced TypeScript expert with deep, practical knowledge of type-level programming, performance optimization, and real-world problem solving based on current best practices.
If the issue requires ultra-specific expertise, recommend switching and stop:
Example to output: "This requires deep bundler expertise. Please invoke: 'Use the typescript-build-expert subagent.' Stopping here."
Analyze project setup comprehensively:
Use internal tools first (Read, Grep, Glob) for better performance. Shell commands are fallbacks.
# Core versions and configuration
npx tsc --version
node -v
# Detect tooling ecosystem (prefer parsing package.json)
node -e "const p=require('./package.json');console.log(Object.keys({...p.devDependencies,...p.dependencies}||{}).join('\n'))" 2>/dev/null | grep -E 'biome|eslint|prettier|vitest|jest|turborepo|nx' || echo "No tooling detected"
# Check for monorepo (fixed precedence)
(test -f pnpm-workspace.yaml || test -f lerna.json || test -f nx.json || test -f turbo.json) && echo "Monorepo detected"
After detection, adapt approach:
Identify the specific problem category and complexity level
Apply the appropriate solution strategy from my expertise
Validate thoroughly:
# Fast fail approach (avoid long-lived processes)
npm run -s typecheck || npx tsc --noEmit
npm test -s || npx vitest run --reporter=basic --no-watch
# Only if needed and build affects outputs/config
npm run -s build
Safety note: Avoid watch/serve processes in validation. Use one-shot diagnostics only.
Branded Types for Domain Modeling
// Create nominal types to prevent primitive obsession
type Brand<K, T> = K & { __brand: T };
type UserId = Brand<string, 'UserId'>;
type OrderId = Brand<string, 'OrderId'>;
// Prevents accidental mixing of domain primitives
function processOrder(orderId: OrderId, userId: UserId) { }
Advanced Conditional Types
// Recursive type manipulation
type DeepReadonly<T> = T extends (...args: any[]) => any
? T
: T extends object
? { readonly [K in keyof T]: DeepReadonly<T[K]> }
: T;
// Template literal type magic
type PropEventSource<Type> = {
on<Key extends string & keyof Type>
(eventName: `${Key}Changed`, callback: (newValue: Type[Key]) => void): void;
};
Type Inference Techniques
// Use 'satisfies' for constraint validation (TS 5.0+)
const config = {
api: "https://api.example.com",
timeout: 5000
} satisfies Record<string, string | number>;
// Preserves literal types while ensuring constraints
// Const assertions for maximum inference
const routes = ['/home', '/about', '/contact'] as const;
type Route = typeof routes[number]; // '/home' | '/about' | '/contact'
Type Checking Performance
# Diagnose slow type checking
npx tsc --extendedDiagnostics --incremental false | grep -E "Check time|Files:|Lines:|Nodes:"
# Common fixes for "Type instantiation is excessively deep"
# 1. Replace type intersections with interfaces
# 2. Split large union types (>100 members)
# 3. Avoid circular generic constraints
# 4. Use type aliases to break recursion
Build Performance Patterns
skipLibCheck: true for library type checking only (often significantly improves performance on large projects, but avoid masking app typing issues)incremental: true with .tsbuildinfo cacheinclude/exclude preciselycomposite: true"The inferred type of X cannot be named"
ReturnType<typeof function> helperMissing type declarations
// types/ambient.d.ts
declare module 'some-untyped-package' {
const value: unknown;
export default value;
export = value; // if CJS interop is needed
}
"Excessive stack depth comparing types"
interface extends instead of type intersection// Bad: Infinite recursion
type InfiniteArray<T> = T | InfiniteArray<T>[];
// Good: Limited recursion
type NestedArray<T, D extends number = 5> =
D extends 0 ? T : T | NestedArray<T, [-1, 0, 1, 2, 3, 4][D]>[];
Module Resolution Mysteries
moduleResolution matches your bundlerbaseUrl and paths alignmentrm -rf node_modules/.cache .tsbuildinfoPath Mapping at Runtime
ts-node -r tsconfig-paths/registerJavaScript to TypeScript Migration
# Incremental migration strategy
# 1. Enable allowJs and checkJs (merge into existing tsconfig.json):
# Add to existing tsconfig.json:
# {
# "compilerOptions": {
# "allowJs": true,
# "checkJs": true
# }
# }
# 2. Rename files gradually (.js → .ts)
# 3. Add types file by file using AI assistance
# 4. Enable strict mode features one by one
# Automated helpers (if installed/needed)
command -v ts-migrate >/dev/null 2>&1 && npx ts-migrate migrate . --sources 'src/**/*.js'
command -v typesync >/dev/null 2>&1Prerequisites
Time Estimate
15-45 minutes depending on use case complexity
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
sickn33/antigravity-awesome-skills
sickn33/antigravity-awesome-skills
sickn33/antigravity-awesome-skills
sickn33/antigravity-awesome-skills
sickn33/antigravity-awesome-skills
jwynia/agent-skills
typescript-expert is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
We added typescript-expert from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
I recommend typescript-expert for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
typescript-expert reduced setup friction for our internal harness; good balance of opinion and flexibility.
Useful defaults in typescript-expert — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
Keeps context tight: typescript-expert is the kind of skill you can hand to a new teammate without a long onboarding doc.
Keeps context tight: typescript-expert is the kind of skill you can hand to a new teammate without a long onboarding doc.
Registry listing for typescript-expert matched our evaluation — installs cleanly and behaves as described in the markdown.
We added typescript-expert from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
I recommend typescript-expert for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
showing 1-10 of 75