Install
openclaw skills install @thcjp/typescript-skills-tool-freeopenclaw skills install @thcjp/typescript-skills-tool-freetypescript-skills-tool-free 为个人开发者提供符合行业惯例的 TypeScript 编码规范指导。它覆盖命名、类型、函数、类、模块等基础约定,帮助你在个人项目中写出风格一致、可读性强的代码。免费版聚焦核心规范,适合中小型项目与学习实践。
当你在对话中提及 TypeScript 相关话题时,本工具会自动激活并输出符合规范的代码示例与解释。
| 能力 | 说明 |
|---|---|
| 命名规范 | 变量 camelCase、类 PascalCase、常量 UPPER_SNAKE_CASE、文件 kebab-case.ts |
| 类型与接口 | interface vs type 的选择策略,避免 I 前缀与 Type 后缀 |
| 函数规范 | 显式返回类型、参数数量限制、默认参数优于可选参数 |
| 类与继承 | 组合优于继承、readonly 属性、显式访问修饰符 |
| 模块与导入 | 具名导出优先、import type 用法、导入分组顺序 |
| 空值处理 | strictNullChecks、可选链 ?.、空值合并 ?? |
用input_params参数进行配置。
输入: 用户提供核心功能执行所需的指令和必要参数。 处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志。
input_params参数,支持创建/查询/导出操作用config_options参数进行配置。
输入: 用户提供参数配置与调用所需的指令和必要参数。 处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志。
config_options参数,支持修改/重置/导入操作用output_format参数进行配置。
输入: 用户提供结果处理与输出所需的指令和必要参数。 处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志。
output_format参数,支持导出/保存/转换操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:面向个人开发者的、TypeScript、编码规范指导、覆盖命名、模块等基础约定、编码规范工具免费、版为个人开发者提、供符合行业惯例的、编码约定、涵盖命名规范、函数与类、模块与导入等基础、核心能力、命名规范指导、类型与接口选择策、函数与类的最佳实、模块与导入顺序约、错误处理与空值处、理基础等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。当你不确定某个构造的命名约定时,直接询问即可获得表格化参考。
问:TypeScript 中常量、类、接口、枚举成员分别用什么命名风格?
| 构造 | 约定 | 示例 |
|---|---|---|
| 变量 / 函数 | camelCase | getUserName、isActive |
| 布尔变量 | camelCase 带前缀 | isLoading、hasAccess |
| 模块常量 | UPPER_SNAKE_CASE | MAX_RETRY_COUNT、API_BASE_URL |
| 类 / 接口 / 类型 | PascalCase | UserService、UserProfile |
| 枚举成员 | PascalCase | Direction.Up、HttpStatus.Ok |
| 文件名 | kebab-case.ts | user-service.ts |
| 测试文件 | kebab-case.test.ts | user-service.test.ts |
| React 组件文件 | PascalCase.tsx | UserProfile.tsx |
当你需要为对象形状定义类型时,本工具会指导你选择 interface 还是 type。
// 推荐:对象形状用 interface
interface User {
readonly id: string;
name: string;
email: string;
}
// ...
// 推荐:联合、交叉、映射类型用 type
type Status = 'active' | 'inactive' | 'suspended';
type Result<T> = Success<T> | Failure;
用 interface 当 | 用 type 当 |
|---|---|
| 定义对象或类的形状 | 创建联合或交叉类型 |
| 需要声明合并 | 使用映射 / 条件类型 |
| 继承其他接口 | 别名原始或元组类型 |
当函数参数超过 3 个时,本工具会建议你使用选项对象。
// 不推荐:位置参数过多
function createUser(name: string, email: string, role: Role, dept: string): User { ... }
// ...
// 推荐:使用选项对象
interface CreateUserOptions {
name: string;
email: string;
role?: Role;
department?: string;
}
function createUser(options: CreateUserOptions): User { ... }
以下场景TS编码规范工具(免费版)不适合处理:
需要代码生成、编程辅助、调试测试、开发部署时使用。不适用于非本工具能力范围的需求。
在对话中提及 TypeScript,本工具会自动激活。例如:
帮我写一个 TypeScript 函数,合并两个对象。
审查这段 TypeScript 代码的风格问题。
工具会输出符合规范的代码、解释与可选的 ESLint 规则提示。
npx tsc --noEmit
npx eslint . --fix
tsconfig.json{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"lib": ["ES2022"],
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
}
}
{
"rules": {
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/explicit-function-return-type": "warn",
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/consistent-type-imports": "error",
"@typescript-eslint/no-non-null-assertion": "warn"
}
}
strict: true:这会开启 noImplicitAny、strictNullChecks、strictFunctionTypes 等关键检查。import type 用于类型导入:帮助打包器 tree-shaking,避免运行时依赖。const 优先,let 仅在需要重新赋值时使用,永不使用 var。catch 变量类型为 unknown,收窄后再使用。@param、@returns、@example 标签。I 前缀?不要。IUser 是 .NET 风格,TypeScript 社区普遍使用 User。也不要加 Type 或 Interface 后缀。
小集合且不需要命名空间特性时,优先字符串字面量联合(更简单、可 tree-shaking)。需要反向映射或命名空间时用字符串枚举。避免数字枚举,自动递增易出错。
async/await 还是 .then() 链?优先 async/await,可读性更好。并行独立操作用 Promise.all()。避免 async void 函数(无法 await 且吞错误)。
_ 前缀?不要。TypeScript 的 private 关键字已足够。需要真正运行时私有性时用 # ES 私有字段。
免费版提供个人项目所需的基础规范与示例;Pro 版扩展团队规范、自动化审查脚本、企业级 ESLint 规则集与 CI 集成能力。
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| TypeScript | npm 包 | 推荐 | npm i -D typescript |
| ESLint + @typescript-eslint | npm 包 | 可选 | npm i -D eslint @typescript-eslint/eslint-plugin |
| Prettier | npm 包 | 可选 | npm i -D prettier |
| LLM API | API | 必需 | 由 Agent 内置 LLM 提供 |
tsc 与 eslint 使用本地工具链,不涉及外部 APItsc --noEmit 与 eslint 在本地验证| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "TS编码规范工具(免费版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "typescript skills"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}