Typescript

pproenca/dot-skills/skills/.curated/typescript

作者 pproencacf93c57cac89無授權條款215 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫7 週前更新

TypeScript performance, tsconfig, type errors, async patterns — triggered when the user asks to "optimize TypeScript performance", "speed up tsc compilation", "configure tsconfig.json", "fix type errors", "improve async patterns", or encounters TS errors (TS2322, TS2339, "is not assignable to"). Also triggers on .ts, .tsx, .d.ts file work involving type definitions, module organization, or memory management. Does NOT cover TypeScript basics, framework-specific patterns, or testing.

AI 產生的概覽

TypeScript 效能指南,涵蓋型別、tsconfig、非同步、模組、安全與記憶體共 45 條規則。

功能
提供依優先順序排列的 45 條 TypeScript 規則,分為八大類:型別系統效能、編譯器設定、非同步模式、模組組織、型別安全、記憶體管理、執行階段最佳化與進階模式。每條規則各自放在一份參考文件中,並依影響程度排序,用來指引重構與程式碼產生。它只是純說明性指南,不會產生任何檔案或指令碼。
適用情境
適用於設定 tsconfig.json、撰寫複雜型別定義或泛型、最佳化非同步與資料擷取模式、組織模組與匯入,以及檢視 TypeScript 程式碼的編譯與執行階段效能。也適用於涉及型別定義、模組組織或記憶體管理的 .ts、.tsx 與 .d.ts 工作。
執行需求
不需要任何工具、套件或憑證;它僅包含說明與參考文件,不附帶指令碼。

TypeScript Best Practices

Comprehensive performance optimization guide for TypeScript applications. Contains 45 rules across 8 categories, prioritized by impact to guide automated refactoring and code generation.

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

PriorityCategoryImpactPrefix
1Type System PerformanceCRITICALtype-
2Compiler ConfigurationCRITICALtscfg-
3Async PatternsHIGHasync-
4Module OrganizationHIGHmodule-
5Type Safety PatternsMEDIUM-HIGHsafety-
6Memory ManagementMEDIUMmem-
7Runtime OptimizationLOW-MEDIUMruntime-
8Advanced PatternsLOWadvanced-

Table of Contents

  1. Type System Performance [blocked] — CRITICAL
    • 1.1 Add Explicit Return Types to Exported Functions [blocked] — CRITICAL (30-50% faster declaration emit)
    • 1.2 Avoid Deeply Nested Generic Types [blocked] — CRITICAL (prevents exponential instantiation cost)
    • 1.3 Avoid Large Union Types [blocked] — CRITICAL (quadratic O(n²) comparison cost)
    • 1.4 Extract Conditional Types to Named Aliases [blocked] — CRITICAL (enables compiler caching, prevents re-evaluation)
    • 1.5 Limit Type Recursion Depth [blocked] — HIGH (prevents exponential type expansion when applicable)
    • 1.6 Prefer Interfaces Over Type Intersections [blocked] — CRITICAL (2-5× faster type resolution)
    • 1.7 Simplify Complex Mapped Types [blocked] — HIGH (reduces type computation by 50-80% when applicable)
  2. Compiler Configuration [blocked] — CRITICAL
    • 2.1 Configure Include and Exclude Properly [blocked] — CRITICAL (prevents scanning thousands of unnecessary files)
    • 2.2 Enable Incremental Compilation [blocked] — CRITICAL (50-90% faster rebuilds)
    • 2.3 Enable isolatedDeclarations for Parallel Declaration Emit [blocked] — CRITICAL (enables parallel .d.ts generation without type-checker)
    • 2.4 Enable skipLibCheck for Faster Builds [blocked] — CRITICAL (20-40% faster compilation)
    • 2.5 Enable strictFunctionTypes for Faster Variance Checks [blocked] — CRITICAL (enables optimized variance checking)
    • 2.6 Use erasableSyntaxOnly for Node.js Native TypeScript [blocked] — HIGH (prevents 100% of Node.js type-stripping runtime errors)
    • 2.7 Use isolatedModules for Single-File Transpilation [blocked] — CRITICAL (80-90% faster transpilation with bundlers)
    • 2.8 Use Project References for Large Codebases [blocked] — CRITICAL (60-80% faster incremental builds)
  3. Async Patterns [blocked] — HIGH
    • 3.1 Annotate Async Function Return Types [blocked] — HIGH (prevents runtime errors, improves inference)
    • 3.2 Avoid await Inside Loops [blocked] — HIGH (N× faster for N iterations, 10 users = 10× improvement)
    • 3.3 Avoid Unnecessary async/await [blocked] — HIGH (eliminates trivial Promise wrappers and improves stack traces)
    • 3.4 Defer await Until Value Is Needed [blocked] — HIGH (enables implicit parallelization)
    • 3.5 Use Promise.all for Independent Operations [blocked] — HIGH (2-10× improvement in I/O-bound code)
  4. Module Organization [blocked] — HIGH
    • 4.1 Avoid Barrel File Imports [blocked] — HIGH (200-800ms import cost, 30-50% larger bundles)
    • 4.2 Avoid Circular Dependencies [blocked] — HIGH (prevents runtime undefined errors and slow compilation)
    • 4.3 Control @types Package Inclusion [blocked] — HIGH (prevents type conflicts and reduces memory usage)
    • 4.4 Use Dynamic Imports for Large Modules [blocked] — HIGH (reduces initial bundle by 30-70%)
    • 4.5 Use Type-Only Imports for Types [blocked] — HIGH (eliminates runtime imports for type information)
  5. Type Safety Patterns [blocked] — MEDIUM-HIGH
    • 5.1 Enable noUncheckedIndexedAccess [blocked] — MEDIUM-HIGH (prevents 100% of unchecked index access errors at compile time)
    • 5.2 Enable strictNullChecks [blocked] — MEDIUM-HIGH (prevents null/undefined runtime errors)
    • 5.3 Prefer unknown Over any [blocked] — MEDIUM-HIGH (forces type narrowing, prevents runtime errors)
    • 5.4 Use Assertion Functions for Validation [blocked] — MEDIUM-HIGH (reduces validation boilerplate by 50-70%)
    • 5.5 Use const Assertions for Literal Types [blocked] — MEDIUM-HIGH (preserves literal types, enables better inference)
    • 5.6 Use Exhaustive Checks for Union Types [blocked] — MEDIUM-HIGH (prevents 100% of missing case errors at compile time)
    • 5.7 Use Type Guards for Runtime Type Checking [blocked] — MEDIUM-HIGH (eliminates type assertions, catches errors at boundaries)
  6. Memory Management [blocked] — MEDIUM
    • 6.1 Avoid Closure Memory Leaks [blocked] — MEDIUM (prevents retained references in long-lived callbacks)
    • 6.2 Avoid Global State Accumulation [blocked] — MEDIUM (prevents unbounded memory growth)
    • 6.3 Clean Up Event Listeners [blocked] — MEDIUM (prevents unbounded memory growth)
    • 6.4 Clear Timers and Intervals [blocked] — MEDIUM (prevents callback retention and repeated execution)
    • 6.5 Use WeakMap for Object Metadata [blocked] — MEDIUM (prevents memory leaks, enables automatic cleanup)
  7. Runtime Optimization [blocked] — LOW-MEDIUM
    • 7.1 Avoid Object Spread in Hot Loops [blocked] — LOW-MEDIUM (reduces object allocations by N×)
    • 7.2 Cache Property Access in Loops [blocked] — LOW-MEDIUM (reduces property lookups by N× in hot paths)
    • 7.3 Prefer Native Array Methods Over Lodash [blocked] — LOW-MEDIUM (eliminates library overhead, enables tree-shaking)
    • 7.4 Use for-of for Simple Iteration [blocked] — LOW-MEDIUM (reduces iteration boilerplate by 30-50%)
    • 7.5 Use Modern String Methods [blocked] — LOW-MEDIUM (2-5× faster than regex for simple patterns)
    • 7.6 Use Set/Map for O(1) Lookups [blocked] — LOW-MEDIUM (O(n) to O(1) per lookup)
  8. Advanced Patterns [blocked] — LOW
    • 8.1 Use Branded Types for Type-Safe IDs [blocked] — LOW (prevents mixing incompatible ID types)
    • 8.2 Use satisfies for Type Validation with Inference [blocked] — LOW (prevents property access errors, enables 100% autocomplete accuracy)
    • 8.3 Use Template Literal Types for String Patterns [blocked] — LOW (prevents 100% of string format errors at compile time)

References

  1. https://github.com/microsoft/TypeScript/wiki/Performance
  2. https://www.typescriptlang.org/docs/handbook/
  3. https://v8.dev/blog
  4. https://nodejs.org/en/learn/diagnostics/memory

來源與署名

來源:pproenca/dot-skills位於skills/.curated/typescript提交cf93c57

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架