typescript-types
- Repo stars 0
- Author repo skills-registry
Typescript Types
Goal
Generate complete TypeScript type code and file updates, not concept-only guidance.
Required Folder Convention
Always follow this structure:
src/
types/
auth/
types.ts
users/
types.ts
posts/
types.ts
common/
types.ts
index.ts
Rules:
- One feature per folder under
src/types/<feature>. - One
types.tsfile per feature folder. - Do not mix multiple features in one types file.
- Shared definitions go only in
src/types/common/types.ts. - Re-export all feature/common types from
src/types/index.ts.
Generation Workflow
When asked to add or create types for a feature:
- Create or update
src/types/<feature>/types.ts. - Organize definitions in section order:
- Enums
- Core interfaces
- DTO interfaces
- Response interfaces
- Utility types
- Update
src/types/index.tsexports. - If request touches shared contracts, update
src/types/common/types.ts. - If request extends
req.user, updatesrc/types/express.d.ts(not feature file).
Interface vs Type Rules
Use interface for object shapes by default:
- Entities
- DTO objects
- API response object shapes
- Class contracts
- Objects likely to be extended
Use type for:
- Unions
- Intersections
- Primitive aliases
- Tuples
- Conditional and mapped utility types
- Closed definitions that should not be declaration-merged
Do not replace object interfaces with type aliases when interface is sufficient.
Enum Rules
Use string enum or const enum only:
- Feature-specific enums in feature
types.ts. - Shared enums in
src/types/common/types.ts.
Prefer union type over enum only for tiny, local-only literal sets.
Never generate numeric enums.
Naming Rules
- Interface names: PascalCase
- Type aliases: PascalCase
- Enum names: PascalCase
- Enum members: SCREAMING_SNAKE_CASE
- Folders: lowercase singular
- File names: lowercase, use
types.ts
Integration Rules
- Controllers consume DTO interfaces for request typing.
- Services return typed entities/response interfaces.
- Middlewares use enums for role/status checks.
- Prisma model contracts should map 1:1 with entity interfaces.
- Derive public response types from entities using
Omit/Pick(for example strippasswordHash). - Express request extension belongs in
src/types/express.d.tsonly.
Use standardized API success/error shapes in common types for cross-feature consistency.
Required Outputs Per Task
If user asks for feature types, generate:
src/types/<feature>/types.tswith complete definitions.src/types/index.tsexport update.
If user asks for shared types, generate:
src/types/common/types.tsupdates.src/types/index.tsexport update.
If user asks interface/type/enum design question:
- Provide decision with examples.
- If project files are present, also generate concrete type code in correct files.
References To Load
Read these references when generating:
references/decision-guide.mdreferences/feature-templates.mdreferences/utility-types.md
Output Style For This Skill
When triggered:
- Prefer file creation/edits with complete imports/exports.
- Produce ready-to-use interfaces/types/enums with no placeholders.
- Keep exports clean and centralized via
src/types/index.ts.
<!-- tomevault:4.0:skill_md:2026-05-22 -->Source: CharvitZalavadiya/GitChat — distributed by TomeVault.
- Fluxly category
- Engineering
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 88 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @tomevault-io · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Plug-and-play
- External API key
- No requirement detected
- Detected OS requirements
- Unspecified
- Runtime requirements
- Unspecified
- Detected file/system behavior
-
- Read-only
- Write / modify
- Detected network behavior
- Local-only
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
# Required Outputs Per Task
- `src/types/<feature>/types.ts` with complete definitions.
- `src/types/index.ts` export update.
- `src/types/common/types.ts` updates.
- `src/types/index.ts` export update.
- Provide decision with examples.
- If project files are present, also generate concrete type code in correct files. Generate complete TypeScript type code and file updates, not concept-only guidance.
Always follow this structure: Rules: One feature per folder under src/types/<feature>.
When asked to add or create types for a feature: Create or update src/types/<feature>/types.ts. Organize definitions in section order:
Use interface for object shapes by default: Entities DTO objects
Use string enum or const enum only: Feature-specific enums in feature types.ts. Shared enums in src/types/common/types.ts.
Interface names: PascalCase Type aliases: PascalCase Enum names: PascalCase
# Typescript Types
## Goal
Generate complete TypeScript type code and file updates, not concept-only guidance.
## Required Folder Convention
Always follow this structure:
```text
src/
types/
auth/
types.ts
users/
types.ts
posts/
types.ts
common/
types.ts
index.ts
```
Rules:
- One feature per folder under `src/types/<feature>`.
- One `types.ts` file per feature folder.
- Do not mix multiple features in one types file.
- Shared definitions go only in `src/types/common/types.ts`.
- Re-export all feature/common types from `src/types/index.ts`.
## Generation Workflow
When asked to add or create types for a feature:
1. Create or update `src/types/<feature>/types.ts`.
2. Organize definitions in section order:
- Enums
- Core interfaces
- DTO interfaces
- Response interfaces
- Utility types
3. Update `src/types/index.ts` exports.
4. If request touches shared contracts, update `src/types/common/types.ts`.
5. If request extends `req.user`, update `src/types/express.d.ts` (not feature file).
## Interface vs Type Rules
Use interface for object shapes by default:
- Entities
- DTO objects
- API response object shapes
- Class contracts
- Objects likely to be extended
Use type for:
- Unions
- Intersections
- Primitive aliases
- Tuples
- Conditional and mapped utility types
- Closed definitions that should not be declaration-merged
Do not replace object interfaces with type aliases when interface is sufficient.
## Enum Rules
Use string enum or const enum only:
- Feature-specific enums in feature `types.ts`.
- Shared enums in `src/types/common/types.ts`.
Prefer union type over enum only for tiny, local-only literal sets.
Never generate numeric enums.
## Naming Rules
- Interface names: PascalCase
- Type aliases: PascalCase
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> Goal → Required Folder Convention → Generation Workflow → Interface vs Type Rules → Enum Rules → Naming Rules
terms -> Rules: - One feature per folder under src/types/<feature>. · When asked to add or create types for a feature: 1. · Do not replace object interfaces with type aliases when interface is sufficient. · Use string enum or const enum only: - Feature-specific enums in feature types.ts. · Prefer union type over enum only for tiny, local-only literal sets. · Never generate numeric enums. · - Controllers consume DTO interfaces for request typing. · Use standardized API success/error shapes in common types for cross-feature consistency.
files/cmd -> src/types/<feature> · types.ts · src/types/common/types.ts · src/types/index.ts · src/types/<feature>/types.ts · req.user · src/types/express.d.ts · Omit
body sha256 -> 2595c30e5a42
Decide Fit First
Design Intent
How To Use It
Boundaries And Review