- 
                Notifications
    
You must be signed in to change notification settings  - Fork 35.9k
 
Coding Guidelines
        Erich Gamma edited this page Nov 17, 2015 
        ·
        29 revisions
      
    - Use PascalCase for type names.
 - Use PascalCase for enum values.
 - Use camelCase for function names.
 - Use camelCase for property names and local variables.
 - Use whole words in names when possible.
 
- Do not export types/functions unless you need to share it across multiple components.
 - Do not introduce new types/values to the global namespace.
 
- Use JSDoc style comments for functions, interfaces, enums, and classes.
 
- Use double quotes for strings shown to the user that need to be externalized.
 - Use single quotes otherwise.
 - All strings visible to the user need to be externalized.
 
- Use arrow functions over anonymous function expressions.
 - Only surround arrow function parameters when necessary. 
For example,(x) => x + xis wrong but the following are correct: x => x + x(x,y) => x + y<T>(x: T, y: T) => x === y- Always surround loop and conditional bodies with curly braces.
 - Open curly braces always go on the same line as whatever necessitates them.
 - Parenthesized constructs should have no surrounding whitespace. 
A single space follows commas, colons, and semicolons in those constructs. For example: for (var i = 0, n = str.length; i < 10; i++) { }if (x < 10) { }function f(x: number, y: string): void { }
Project Management
- Roadmap
 - Iteration Plans
 - Development Process
 - Issue Tracking
 - Build Champion
 - Release Process
 - Running the Endgame
 - Related Projects
 
Contributing
- How to Contribute
 - Submitting Bugs and Suggestions
 - Feedback Channels
 - Source Code Organization
 - Coding Guidelines
 - Testing
 - Dealing with Test Flakiness
 - Contributor License Agreement
 - Extension API Guidelines
 - Accessibility Guidelines
 - Custom ESLint rules
 
Documentation