typescript-best-practices
Idiomatic TypeScript patterns for clean, maintainable code.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
TypeScript Best Practices
Priority: P1 (OPERATIONAL)
Implementation Guidelines
-
Naming: Classes/Types=
PascalCase, vars/funcs=camelCase, consts=UPPER_SNAKE. PrefixIonly if needed. - Functions: Arrows for callbacks; regular for exports. Always type public API returns.
- Modules: Named exports only. Import order: external → internal → relative.
-
Async: Use
async/await, not raw Promises.Promise.all()for parallel. -
Classes: Explicit access modifiers. Favor composition. Use
readonly. -
Types: Use
neverfor exhaustiveness,assertsfor runtime checks. -
Optional: Use
?:, not| undefined. -
Imports: Use
import typefor tree-shaking.
Anti-Patterns
- No Default Exports: Use named exports.
- No Implicit Returns: Specify return types.
-
No Unused Variables: Enable
noUnusedLocals. -
No
require: Use ES6import. -
No Empty Interfaces: Use
typeor non-empty interface. -
Use any: Never use
any, useunknownonly when necessary.
Reference & Examples
See references/examples.md for code samples including:
- Immutable Interfaces
- Exhaustiveness Checking
- Assertion Functions
- Dependency Injection Patterns
- Import Organization
Related Topics
language | tooling | security
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!