name: ts-google description: 谷歌TypeScript风格指南,用于编写干净、一致、类型安全的代码。此技能应用于编写、审查或重构TypeScript代码。触发于TypeScript文件、类型注释、模块导入、类设计和代码风格决策。
谷歌TypeScript最佳实践
基于谷歌内部标准的全面TypeScript风格指南,专为AI代理和LLM设计。包含8个类别的45条规则,按影响优先级排序,指导自动化重构和代码生成。
何时应用
在以下情况下参考这些指南:
- 编写新的TypeScript代码
- 组织模块和导入
- 设计类型注释和接口
- 创建类和函数
- 审查代码以确保风格一致性
- 重构现有的TypeScript代码
按优先级的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 模块组织 | 关键 | module- |
| 2 | 类型安全 | 关键 | types- |
| 3 | 类设计 | 高 | class- |
| 4 | 函数模式 | 高 | func- |
| 5 | 控制流 | 中高 | control- |
| 6 | 错误处理 | 中 | error- |
| 7 | 命名与风格 | 中 | naming- |
| 8 | 字面量与强制转换 | 低中 | literal- |
快速参考
1. 模块组织 (关键)
module-named-exports- 使用命名导出而非默认导出module-no-mutable-exports- 避免可变导出module-es6-modules- 仅使用ES6模块module-no-namespaces- 避免TypeScript命名空间module-import-paths- 项目导入使用相对路径module-import-type- 类型导入使用import typemodule-export-api-surface- 最小化导出API表面
2. 类型安全 (关键)
types-no-any- 永远不要使用any类型types-prefer-interfaces- 对象类型优先使用接口而非类型别名types-explicit-structural- 显式注释结构类型types-nullable-patterns- 正确处理可空类型types-array-syntax- 使用一致的数组类型语法types-no-wrapper-types- 永不使用包装对象类型types-prefer-map-set- 优先使用Map和Set而非索引签名types-no-empty-object- 避免空对象类型
3. 类设计 (高)
class-parameter-properties- 构造函数赋值使用参数属性class-readonly-properties- 从不重新赋值的属性标记为readonlyclass-no-private-fields- 使用TypeScript private而非私有字段class-no-static-containers- 避免仅包含静态成员的容器类class-constructor-parens- 构造函数调用始终使用括号class-no-prototype-manipulation- 永不直接操作原型
4. 函数模式 (高)
func-declarations-over-expressions- 优先使用函数声明而非表达式func-arrow-concise-bodies- 适当使用简洁箭头函数体func-avoid-this-rebinding- 避免重新绑定thisfunc-rest-parameters- 使用剩余参数而非argumentsfunc-generator-syntax- 使用正确的生成器函数语法func-default-parameters- 谨慎使用默认参数
5. 控制流 (中高)
control-always-use-braces- 控制结构始终使用花括号control-triple-equals- 始终使用三等号control-for-of-iteration- 数组迭代优先使用for-of而非for-incontrol-switch-default- switch语句始终包含default casecontrol-no-assignment-in-condition- 避免在条件表达式中赋值
6. 错误处理 (中)
error-throw-errors- 始终抛出Error实例error-catch-unknown- 将catch子句变量类型化为unknownerror-empty-catch-comments- 记录空catch块error-avoid-assertions- 避免类型和非空断言
7. 命名与风格 (中)
naming-identifier-styles- 使用正确的标识符命名风格naming-descriptive-names- 使用描述性名称naming-no-decorative-underscores- 避免装饰性下划线naming-no-interface-prefix- 接口不加I前缀naming-constants- 真常量使用CONSTANT_CASE
8. 字面量与强制转换 (低中)
literal-single-quotes- 字符串使用单引号literal-number-formats- 使用正确的数字字面量格式literal-explicit-coercion- 使用显式类型强制转换literal-array-constructor- 避免Array构造函数
如何使用
阅读个别参考文件以获取详细解释和代码示例:
参考文件
| 文件 | 描述 |
|---|---|
| AGENTS.md | 包含所有规则的完整编译指南 |
| references/_sections.md | 类别定义和排序 |
| assets/templates/_template.md | 新规则模板 |
| metadata.json | 版本和参考信息 |