ts-google▌
pproenca/dot-skills · updated Apr 8, 2026
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.
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 |
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.8★★★★★57 reviews- ★★★★★Nia Agarwal· Dec 24, 2024
ts-google has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Shikha Mishra· Dec 20, 2024
ts-google is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Charlotte Sharma· Dec 20, 2024
Useful defaults in ts-google — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Anaya Harris· Dec 20, 2024
ts-google fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Amina Farah· Dec 8, 2024
Solid pick for teams standardizing on skills: ts-google is focused, and the summary matches what you get after install.
- ★★★★★William Zhang· Nov 27, 2024
ts-google has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Sakshi Patil· Nov 19, 2024
Keeps context tight: ts-google is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Neel Brown· Nov 15, 2024
Solid pick for teams standardizing on skills: ts-google is focused, and the summary matches what you get after install.
- ★★★★★Yash Thakker· Nov 11, 2024
Useful defaults in ts-google — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Arjun Srinivasan· Nov 11, 2024
ts-google is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
showing 1-10 of 57