
React
Folosește componente funcționale
Utilizează întotdeauna componente funcționale TSX. Nu folosiimport implicit cu const, deoarece este mai greu de citit și mai greu de importat cu completarea de cod.
Proprietăți
Creează tipul proprietăților și numește-l(NumeComponentă)Props dacă nu este necesar să o exporți.
Folosește destructurarea props.
Ferește-te de utilizarea React.FC sau React.FunctionComponent pentru a defini tipurile props
Fără Împrăștierea de Proprietăți cu o singură variabilă în Elemente JSX
Evită utilizarea împrăștierii de proprietăți cu o singură variabilă în elemente JSX, cum ar fi{...props}. Această practică adesea duce la cod mai puțin lizibil și mai greu de întreținut deoarece nu este clar ce proprietăți primește componenta.
- La o privire rapidă, este mai evident ce proprietăți sunt transmise de cod, făcându-l mai ușor de înțeles și întreținut.
- Ajută la prevenirea unei cuplări strânse între componente prin proprietățile lor.
- Instrumentele de linting fac mai ușor să identifici proprietăți sprellate greșit sau neutilizate atunci când enumeri explicit proprietățile.
JavaScript
Utilizează operatorul de coalescență nulă ??
Folosește accesarea opțională ?.
TypeScript
Use type instead of interface
Always use type instead of interface, because they almost always overlap, and type is more flexible.
Folosește litere de șir în loc de enum
Literele de șir sunt metoda standard pentru manipularea valorilor similare cu enum în TypeScript. Sunt mai ușor de extins cu Pick și Omit, oferind o experiență mai bună dezvoltatorilor, mai ales cu completarea codului. Poți vedea de ce TypeScript recomandă evitarea enumurilor aici.GraphQL și biblioteci interne
Ar trebui să folosești enumurile generate de GraphQL codegen. Este de asemenea mai bine să folosești un enum atunci când utilizezi o bibliotecă internă, astfel încât biblioteca internă să nu trebuiască să expose un tip de literă de șir care nu este legată de API-ul intern. Exemplu:Stilizare
Folosește ComponentaStilizată
Stilizează componentele cu styled-components.Tematica
Utilizarea temei pentru majoritatea stilizării componentelor este abordarea preferată.Unități de măsură
Evită utilizarea directă a valorilorpx sau rem în componentele stilizate. Valorile necesare sunt de regulă deja definite în temă, așa că este recomandat să utilizezi tema pentru aceste scopuri.
Culori
Abține-te să introduci culori noi; în schimb, folosește paleta existentă din temă. În situația în care paleta nu se potrivește, te rugăm să lași un comentariu pentru ca echipa să poată remedia acest aspect.Impunerea Neprecizării Importurilor de Tip
Evită importurile de tip. Pentru a impune acest standard, o regulă ESLint verifică și raportează orice importuri de tip. Acest lucru ajută la menținerea consistenței și lizibilității în codul TypeScript.De ce Fără Importuri de Tip
- Consistență: Evitând importurile de tip și folosind o singură abordare atât pentru importurile de tip cât și de valoare, baza de cod rămâne consistentă în stilul său de import module.
- Readability: No-type imports improve code readability by making it clear when you’re importing values or types. Aceasta reduce ambiguitatea și face mai ușor de înțeles scopul simbolurilor importate.
- Întreținere: Îmbunătățește întreținerea bazei de cod, deoarece dezvoltatorii pot identifica și localiza importurile doar de tip când revizuiesc sau modifică codul.
Regula ESLint
O regulă ESLint,@typescript-eslint/consistent-type-imports, impune standardul fără importuri de tip. Această regulă va genera erori sau avertismente pentru orice încălcare a importurilor de tip.
Please note that this rule specifically addresses rare edge cases where unintentional type imports occur. TypeScript descurajează el însuși această practică, așa cum este menționat în notele de lansare TypeScript 3.8. În majoritatea situațiilor, nu ar trebui să aveți nevoie de importuri doar de tip.
To ensure your code complies with this rule, make sure to run ESLint as part of your development workflow.