React TypeScript Naming Conventions
Files & Foldersβ
| Category | Convention | Example |
|---|---|---|
| Components | PascalCase.tsx | UserProfile.tsx |
| Hooks | camelCase.ts with use prefix | useAuth.ts |
| Utilities/Helpers | camelCase.ts | formatDate.ts |
| Types/Interfaces | camelCase.types.ts | user.types.ts |
| Constants | camelCase.ts | apiEndpoints.ts |
| Services/API | camelCase.ts with suffix | authService.ts |
| Styles | ComponentName.module.css | Button.module.css |
| Tests | fileName.test.ts(x) | Button.test.tsx |
Folder Structureβ
src/
βββ components/
β βββ Button/
β βββ Button.tsx
β βββ Button.module.css
β βββ Button.test.tsx
βββ hooks/
β βββ useAuth.ts
βββ utils/
β βββ formatDate.ts
βββ types/
β βββ user.types.ts
βββ services/
β βββ authService.ts
βββ constants/
β βββ apiEndpoints.ts
βββ pages/
β βββ Home.tsx
βββ App.tsx
Code Naming Conventionsβ
| Element | Convention | Example |
|---|---|---|
| Variables | camelCase | const userName = "John" |
| Functions | camelCase | function fetchData() {} |
| Components | PascalCase | function Button() {} |
| Types | PascalCase | type ButtonProps = {} |
| Interfaces | PascalCase | interface User {} |
| Constants | UPPER_SNAKE_CASE | const API_BASE_URL = "..." |
| Enums | PascalCase + UPPER_CASE values | enum UserRole { ADMIN = 'ADMIN' } |
Quick Summaryβ
β The Rule:
- Components:
PascalCase.tsx - Everything else:
camelCase.ts - Constants inside code:
UPPER_SNAKE_CASE - Component code:
PascalCase