
React
Fonksiyonel bileşenler kullanın
Her zaman TSX fonksiyonel bileşenlerini kullanın. Do not use defaultimport with const, because it’s harder to read and harder to import with code completion.
Özellikler
Create the type of the props and call it(ComponentName)Props if there’s no need to export it.
Use props destructuring.
Refrain from using React.FC or React.FunctionComponent to define prop types
JSX Elemanlarında Tek Değişkenli Prop Yayılımından Kaçının
JSX elemanlarında tek değişkenli prop yayılımını, örneğin{...props} kullanmaktan kaçının. Bu uygulama, bileşenin hangi prop’ları aldığını belirsizleştirdiği için okunması zor ve bakımı güç kodlara yol açar.
- İlk bakışta, hangi prop’ların kod tarafından geçirildiği daha açıktır, bu da anlamayı ve bakımı kolaylaştırır.
- Prop’lar aracılığıyla bileşenler arasında sıkı bağlanmayı önlemeye yardımcı olur.
- Linting araçları, prop’ları açıkça listelediğinizde yanlış yazılmış veya kullanılmayan prop’ları tanımlamayı kolaylaştırır.
JavaScript
Nullish-birleştirme operatörü ?? kullanın
Opsiyonel zincirleme ?. kullanın
TypeScript
Use type instead of interface
Always use type instead of interface, because they almost always overlap, and type is more flexible.
Use string literals instead of enums
String literalleri, TypeScript’te enum benzeri değerleri yönetmek için en iyi yöntemdir. Pick ve Omit ile genişletilmesi daha kolay olur ve özellikle kod tamamlama ile daha iyi bir geliştirici deneyimi sunarlar. TypeScript, enum’ların neden kaçınılması gereken bir seçenek olduğunu burada açıklamaktadır.GraphQL ve iç kütüphaneler
GraphQL codegen tarafından üretilen enum’ları kullanmalısınız. Bir iç kütüphane kullanırken de bir enum kullanmak daha iyidir, böylece iç kütüphane, iç API ile ilgili olmayan bir string literal türü açmak zorunda kalmaz. Örnek:Şekil Verme
Use StyledComponents
Style the components with styled-components.Temalandırma
Çoğu bileşen şekillendirmesi için temayı kullanmak tercih edilen bir yaklaşımdır.Ölçü birimleri
Styled bileşenler içinde doğrudanpx veya rem değerlerini kullanmaktan kaçının. Gerekli değerler genellikle temada tanımlanmıştır, bu nedenle bu amaçlar için temayı kullanmak önerilir.
Renkler
Yeni renkler eklemekten kaçının; Bunun yerine temadaki mevcut paleti kullanın. Palet uyum sağlamıyorsa, lütfen ekibin düzeltmesi için bir yorum bırakın.Enforcing No-Type Imports
Tip ithalatlarından kaçının. Bu standardı uygulamak için bir ESLint kuralı, herhangi bir tip ithalatını kontrol eder ve raporlar. Bu, TypeScript kodunda tutarlılık ve okunabilirliği sağlamaya yardımcı olur.Neden Tip İthalatları Yok
- Tutarlılık: Hem tip hem de değer ithalatları için tek bir yaklaşım kullanarak, kod tabanı modül import stilinde tutarlı kalır.
- Okunabilirlik: İthalat türü olmadığında, değer veya tip ithal ettiğiniz zaman daha anlaşılır olur böylece kod okunabilirliği artırılır. Bu belirsizliği azaltır ve ithal edilen sembollerinin amacını anlamayı kolaylaştırır.
- Bakım Kolaylığı: Kod tabanının bakımını kolaylaştırır çünkü geliştiriciler kodu incelerken veya değiştirirken yalnızca tip ithalatlarını tanımlayabilir ve bulabilirler.
ESLint Kuralı
ESLint kuralı,@typescript-eslint/consistent-type-imports, tip ithalat standardını uygular. Bu kural, herhangi bir tip ithalat ihlali için hata veya uyarı üretir.
Lütfen unutmayın ki bu kural, istemeden yapılan tip ithalatlarının gerçekleştiği nadir durumları özellikle ele alır. TypeScript itself discourages this practice, as mentioned in the TypeScript 3.8 release notes. Çoğu durumda, yalnızca tip ithalatları kullanmanıza gerek yoktur.
Kodunuzun bu kurala uygun olduğundan emin olmak için, geliştirme iş akışınızın bir parçası olarak ESLint’i çalıştırdığınızdan emin olun.