Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add PyModel/react-frontend-skills --skill typescriptgit clone --depth 1 https://github.com/PyModel/react-frontend-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/pymodel/react-frontend-skills/typescript)<a href="https://agentmods.dev/skills/pymodel/react-frontend-skills/typescript"><img src="https://agentmods.dev/badge/skills/pymodel/react-frontend-skills/typescript/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/pymodel/react-frontend-skills/typescript"><img src="https://agentmods.dev/badge/skills/pymodel/react-frontend-skills/typescript.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00015 | $0.02026 |
| Opus 5.5 | $0.00006 | $0.00810 |
| Sonnet 5.5 | $0.00003 | $0.00405 |
| Haiku 4.5 | $0.00002 | $0.00203 |
Grade A, and why
typescript scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 20d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
TypeScript Best Practices
Comprehensive TypeScript 7-compatible guide with 44 rules across 8 categories, covering compiler configuration, type-system performance, async code, modules, safety, and measured runtime optimization.
When to Apply
Reference these guidelines when:
- Configuring tsconfig.json for a new or existing project
- Writing complex type definitions or generics
- Optimizing async/await patterns and data fetching
- Organizing modules and managing imports
- Reviewing code for compilation or runtime performance
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Type System Performance | CRITICAL | type- |
| 2 | Compiler Configuration | CRITICAL | tscfg- |
| 3 | Async Patterns | HIGH | async- |
| 4 | Module Organization | HIGH | module- |
| 5 | Type Safety Patterns | MEDIUM-HIGH | safety- |
| 6 | Memory Management | MEDIUM | mem- |
| 7 | Runtime Optimization | LOW-MEDIUM | runtime- |
| 8 | Advanced Patterns | LOW | advanced- |
Table of Contents
- Type System Performance — CRITICAL
- 1.1 Add Explicit Return Types to Exported Functions — CRITICAL (faster declaration emit)
- 1.2 Avoid Deeply Nested Generic Types — CRITICAL (prevents exponential instantiation cost)
- 1.3 Avoid Large Union Types — CRITICAL (quadratic O(n²) comparison cost)
- 1.4 Extract Conditional Types to Named Aliases — CRITICAL (enables compiler caching, prevents re-evaluation)
- 1.5 Limit Type Recursion Depth — CRITICAL (prevents exponential type expansion)
- 1.6 Prefer Interfaces Over Type Intersections — CRITICAL (faster type resolution)
- 1.7 Simplify Complex Mapped Types — CRITICAL (reduces type computation)
- Compiler Configuration — CRITICAL
- 2.1 Configure Include and Exclude Properly — CRITICAL (prevents scanning thousands of unnecessary files)
- 2.2 Enable Incremental Compilation — CRITICAL (faster rebuilds)
- 2.3 Choose skipLibCheck Deliberately — CRITICAL (faster compilation)
- 2.4 Enable strictFunctionTypes for Sound Function Assignments — CRITICAL (enables optimized variance checking)
- 2.5 Use isolatedModules for Single-File Transpilers — CRITICAL (faster transpilation with bundlers)
- 2.6 Use Project References for Large Codebases — CRITICAL (faster incremental builds)
- 2.7 Migrate TypeScript 7 Configuration Deliberately — CRITICAL
- Async Patterns — HIGH
- 3.1 Annotate Async Function Return Types — HIGH (prevents runtime errors, improves inference)
- 3.2 Avoid await Inside Loops — HIGH (scales linearly with the number of iterations)
- 3.3 Avoid Unnecessary async/await — HIGH (eliminates microtask queue overhead)
- 3.4 Defer await Until Value Is Needed — HIGH (enables implicit parallelization)
- 3.5 Use Promise.all for Independent Operations — HIGH (improvement in I/O-bound code)
- Module Organization — HIGH
- 4.1 Avoid Barrel File Imports — HIGH (import cost, larger bundles)
- 4.2 Avoid Circular Dependencies — HIGH (prevents runtime undefined errors and slow compilation)
- 4.3 Control @types Package Inclusion — HIGH (prevents type conflicts and reduces memory usage)
- 4.4 Use Dynamic Imports for Large Modules — HIGH (reduces initial bundle)
- 4.5 Use Type-Only Imports for Types — HIGH (eliminates runtime imports for type information)
- Type Safety Patterns — MEDIUM-HIGH
- 5.1 Enable strictNullChecks — MEDIUM-HIGH
- 5.2 Prefer unknown Over any — MEDIUM-HIGH
- 5.3 Use Assertion Functions for Validation — MEDIUM-HIGH
- 5.4 Use const Assertions for Literal Types — MEDIUM-HIGH
- 5.5 Use Exhaustive Checks for Union Types — MEDIUM-HIGH
- 5.6 Use Type Guards for Runtime Type Checking — MEDIUM-HIGH
- Memory Management — MEDIUM
- 6.1 Avoid Closure Memory Leaks — MEDIUM (prevents retained references in long-lived callbacks)
- 6.2 Avoid Global State Accumulation — MEDIUM (prevents unbounded memory growth)
- 6.3 Clean Up Event Listeners — MEDIUM (prevents unbounded memory growth)
- 6.4 Clear Timers and Intervals — MEDIUM (prevents callback retention and repeated execution)
- 6.5 Use WeakMap for Object Metadata — MEDIUM (prevents memory leaks, enables automatic cleanup)
- Runtime Optimization — LOW-MEDIUM
- 7.1 Avoid Object Spread in Hot Loops — LOW-MEDIUM
- 7.2 Hoist Loop-Invariant Work in Measured Hot Paths — LOW-MEDIUM
- 7.3 Prefer Native Array Methods Over Lodash — LOW-MEDIUM
- 7.4 Use for-of for Simple Iteration — LOW-MEDIUM
- 7.5 Use Modern String Methods — LOW-MEDIUM
- 7.6 Use Set/Map for O(1) Lookups — LOW-MEDIUM
- Advanced Patterns — LOW
- 8.1 Use Branded Types for Type-Safe IDs — LOW (prevents mixing incompatible ID types)
- 8.2 Use satisfies for Type Validation with Inference — LOW (prevents property access errors, enables reliable autocomplete)
- 8.3 Use Template Literal Types for String Patterns — LOW (prevents string format errors at compile time)
What ships with it
44 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/advanced-branded-types.md 2.4 KB
- references/advanced-satisfies-operator.md 2.6 KB
- references/advanced-template-literal-types.md 2.6 KB
- references/async-avoid-loop-await.md 2.2 KB
- references/async-avoid-unnecessary-async.md 1.8 KB
- references/async-defer-await.md 2.1 KB
- references/async-explicit-return-types.md 2.5 KB
- references/async-parallel-promises.md 2.1 KB
- references/mem-avoid-closure-leaks.md 2.5 KB
- references/mem-avoid-global-state.md 2.4 KB
- references/mem-cleanup-event-listeners.md 2.9 KB
- references/mem-clear-timers.md 2.5 KB
- references/mem-use-weakmap-for-metadata.md 2.2 KB
- references/module-avoid-barrel-imports.md 1.7 KB
- references/module-avoid-circular-dependencies.md 1.8 KB
- references/module-control-types-inclusion.md 1.8 KB
- references/module-dynamic-imports.md 2.1 KB
- references/module-use-type-imports.md 1.9 KB
- references/runtime-avoid-object-spread-in-loops.md 2.1 KB
- references/runtime-cache-property-access.md 2.4 KB
- references/runtime-prefer-array-methods.md 2.3 KB
- references/runtime-use-for-of-for-iteration.md 2.0 KB
- references/runtime-use-set-for-lookups.md 1.8 KB
- references/runtime-use-string-methods.md 2.2 KB
- references/safety-assertion-functions.md 2.5 KB
- references/safety-const-assertions.md 2.2 KB
- references/safety-exhaustive-checks.md 2.4 KB
- references/safety-prefer-unknown-over-any.md 2.0 KB
- references/safety-strict-null-checks.md 1.9 KB
- references/safety-use-type-guards.md 2.1 KB
- references/tscfg-enable-incremental.md 1.4 KB
- references/tscfg-exclude-properly.md 1.9 KB
- references/tscfg-isolate-modules.md 2.0 KB
- references/tscfg-project-references.md 2.1 KB
- references/tscfg-skip-lib-check.md 1.9 KB
- references/tscfg-strict-function-types.md 2.2 KB
- references/tscfg-typescript-7.md 3.4 KB
- references/type-avoid-deep-generics.md 1.8 KB
- references/type-avoid-large-unions.md 1.6 KB
- references/type-explicit-return-types.md 2.2 KB
- references/type-extract-conditional-types.md 1.6 KB
- references/type-interfaces-over-intersections.md 1.3 KB
- references/type-limit-recursion-depth.md 1.7 KB
- references/type-simplify-mapped-types.md 1.8 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 20d ago Changed · +11 lines · -46 tokens per session 63f4c542ceba
- 1mo ago First seen · 93 lines · 61 tokens per session scan A 079d426856ec
typescript is a skill published in the GitHub repository PyModel/react-frontend-skills (37 stars, last pushed 3d ago), licensed MIT. It adds 15 tokens to every session and 2,026 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
ultracite
Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects. Use when: (1) Setting up or initializing Ultracite in a project, or migrating its existing lint and format config onto Ultracite (ultracite init), (2) Running linting or formatting commands (check, fix, doctor), (3) Writing or…
type-safety
TypeScript type safety conventions for the Playwright scaffold — the "no any" rule, Zod 4 schema patterns (z.strictObject, top-level validators like z.uuid / z.email / z.url / z.int / z.enum), schemas built directly from the documented OpenAPI / Swagger contract (response envelope spelled out per endpoint), type…
enums
TypeScript enum conventions for the Playwright scaffold — PascalCase enum names, SCREAMINGSNAKECASE members, location rules for app-specific (enums/{area}/) vs shared/utility (enums/util/) constants, and the rules for adding or extending enums. Use when adding a new API endpoint path, UI message, role, storage-state…
refactor-values
Safe refactoring workflow for enum values, enum keys, and static test data in test-data/static/.ts — mandatory impact analysis, cascading updates, and verification. Use BEFORE changing any enum member's string value (ApiEndpoints., Messages., Roles, StorageStatePaths), renaming any enum key, or editing any existing…
typescript-project
Modern TypeScript project architecture guide for 2025. Use when creating new TS projects, setting up configurations, or designing project structure. Covers tech stack selection, layered architecture, and best practices.
jest-unit
Unit testing skill using Jest for TypeScript and JavaScript, covering mocking, spies, snapshots, coverage, async testing, and custom matchers.