Typescript 代码创建
- 作者仓库星标 0
- 作者仓库 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.
- 流狐分类
- 工程开发
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @tomevault-io · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 即装即用
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- 未声明
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 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
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> Goal → Required Folder Convention → Generation Workflow → Interface vs Type Rules → Enum Rules → Naming Rules
要点 -> 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.
文件/命令 -> 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
内容 SHA-256 -> 2595c30e5a42
方法与流程
适用与边界
原文中的明确线索
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