google-typescript-style-guide
SKILL.md
Google TypeScript Best Practices
Comprehensive TypeScript style guide based on Google's internal standards, designed for AI agents and LLMs. Contains 45 rules across 8 categories, prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
- Writing new TypeScript code
- Organizing modules and imports
- Designing type annotations and interfaces
- Creating classes and functions
- Reviewing code for style consistency
- Refactoring existing TypeScript code
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Module Organization | CRITICAL | module- |
| 2 | Type Safety | CRITICAL | types- |
| 3 | Class Design | HIGH | class- |
| 4 | Function Patterns | HIGH | func- |
| 5 | Control Flow | MEDIUM-HIGH | control- |
| 6 | Error Handling | MEDIUM | error- |
| 7 | Naming & Style | MEDIUM | naming- |
| 8 | Literals & Coercion | LOW-MEDIUM | literal- |
Quick Reference
1. Module Organization (CRITICAL)
module-named-exports- Use named exports over default exportsmodule-no-mutable-exports- Avoid mutable exportsmodule-es6-modules- Use ES6 modules exclusivelymodule-no-namespaces- Avoid TypeScript namespacesmodule-import-paths- Use relative paths for project importsmodule-import-type- Use import type for type-only importsmodule-export-api-surface- Minimize exported API surface
2. Type Safety (CRITICAL)
types-no-any- Never use the any typetypes-prefer-interfaces- Prefer interfaces over type aliases for objectstypes-explicit-structural- Explicitly annotate structural typestypes-nullable-patterns- Handle nullable types correctlytypes-array-syntax- Use consistent array type syntaxtypes-no-wrapper-types- Never use wrapper object typestypes-prefer-map-set- Prefer Map and Set over index signaturestypes-no-empty-object- Avoid empty object type
3. Class Design (HIGH)
class-parameter-properties- Use parameter properties for constructor assignmentclass-readonly-properties- Mark properties readonly when never reassignedclass-no-private-fields- Use TypeScript private over private fieldsclass-no-static-containers- Avoid container classes with only static membersclass-constructor-parens- Always use parentheses in constructor callsclass-no-prototype-manipulation- Never manipulate prototypes directly
4. Function Patterns (HIGH)
func-declarations-over-expressions- Prefer function declarations over expressionsfunc-arrow-concise-bodies- Use concise arrow function bodies appropriatelyfunc-avoid-this-rebinding- Avoid rebinding thisfunc-rest-parameters- Use rest parameters over argumentsfunc-generator-syntax- Use correct generator function syntaxfunc-default-parameters- Use default parameters sparingly
5. Control Flow (MEDIUM-HIGH)
control-always-use-braces- Always use braces for control structurescontrol-triple-equals- Always use triple equalscontrol-for-of-iteration- Prefer for-of over for-in for arrayscontrol-switch-default- Always include default case in switchcontrol-no-assignment-in-condition- Avoid assignment in conditional expressions
6. Error Handling (MEDIUM)
error-throw-errors- Always throw Error instanceserror-catch-unknown- Type catch clause variables as unknownerror-empty-catch-comments- Document empty catch blockserror-avoid-assertions- Avoid type and non-null assertions
7. Naming & Style (MEDIUM)
naming-identifier-styles- Use correct identifier naming stylesnaming-descriptive-names- Use descriptive namesnaming-no-decorative-underscores- Avoid decorative underscoresnaming-no-interface-prefix- No I prefix for interfacesnaming-constants- Use CONSTANT_CASE for true constants
8. Literals & Coercion (LOW-MEDIUM)
literal-single-quotes- Use single quotes for stringsliteral-number-formats- Use correct number literal formatsliteral-explicit-coercion- Use explicit type coercionliteral-array-constructor- Avoid Array constructor
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions - Category structure and impact levels
- Rule template - Template for adding new rules
Reference Files
| File | Description |
|---|---|
| AGENTS.md | Complete compiled guide with all rules |
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |
Weekly Installs
2
Install
$ npx skills add pproenca/dot-skills --skill "google-typescript-style-guide"Repository
pproenca/dot-skillsInstalled on
claude-code2
kilo1
windsurf1
amp1
clawdbot1
opencode1