--- description: Setup TypeScript best practices and code style rules in CLAUDE.md argument-hint: None required - creates standardized TypeScript guidelines --- # Setup TypeScript Best Practices Create or update CLAUDE.md in with following content, write it strictly as it is, do not summaraise or introduce and new additional information: ```markdown ## Code Style Rules ### General Principles - **TypeScript**: All code must be strictly typed, leverage TypeScript's type safety features ### Code style rules - Interfaces over types - use interfaces for object types - Use enum for constant values, prefer them over string literals - Export all types by default - Use type guards instead of type assertions ### Best Practices #### Library-First Approach - Common areas where libraries should be preferred: - Date/time manipulation → date-fns, dayjs - Form validation → joi, yup, zod - HTTP requests → axios, got - State management → Redux, MobX, Zustand - Utility functions → lodash, ramda #### Code Quality - Use destructuring of objects where possible: - Instead of `const name = user.name` use `const { name } = user` - Instead of `const result = await getUser(userId)` use `const { data: user } = await getUser(userId)` - Instead of `const parseData = (data) => data.name` use `const parseData = ({ name }) => name` - Use `ms` package for time related configuration and environment variables, instead of multiplying numbers by 1000 ```