Skip to main content

React TypeScript Naming Conventions

Files & Folders​

CategoryConventionExample
ComponentsPascalCase.tsxUserProfile.tsx
HookscamelCase.ts with use prefixuseAuth.ts
Utilities/HelperscamelCase.tsformatDate.ts
Types/InterfacescamelCase.types.tsuser.types.ts
ConstantscamelCase.tsapiEndpoints.ts
Services/APIcamelCase.ts with suffixauthService.ts
StylesComponentName.module.cssButton.module.css
TestsfileName.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​

ElementConventionExample
VariablescamelCaseconst userName = "John"
FunctionscamelCasefunction fetchData() {}
ComponentsPascalCasefunction Button() {}
TypesPascalCasetype ButtonProps = {}
InterfacesPascalCaseinterface User {}
ConstantsUPPER_SNAKE_CASEconst API_BASE_URL = "..."
EnumsPascalCase + UPPER_CASE valuesenum UserRole { ADMIN = 'ADMIN' }

Quick Summary​

βœ… The Rule:

  • Components: PascalCase.tsx
  • Everything else: camelCase.ts
  • Constants inside code: UPPER_SNAKE_CASE
  • Component code: PascalCase