26 puan yazan xguru 2023-01-04 | 6 yorum | WhatsApp'ta paylaş

#1 Set gibi düşünmek
#2 Bildirilmiş tür ile daraltılmış (narrowed) türü anlamak
#3 Opsiyonel alanlar yerine ayrımlı birleşim kullanmak
#4 Tür assertion'larından kaçınmak için type predicate kullanmak
#5 Union type dağılımını kontrol etmek
#6 Kapsamlı kontrollerle derleme sırasında ele alınmamış durumları denetlemek
#7 interface yerine type kullanmak
#8 Uygun durumlarda diziler yerine tuple kullanmak
#9 Çıkarılan türün genel ya da daha spesifik olmasını kontrol etmek
#10 Ek generic type parametreleri oluşturmak için infer kullanmak
#11 Tür manipülasyonunda yaratıcı davranarak DRY kalmak
Sonuç

6 yorum

 
tested 2023-01-04
  1. madde React bakış açısından yazılmış gibi görünüyor.
    Ben type yerine interface kullanmayı tercih ediyorum. Diğer dillerde de bulunan bir sözdizimi sonuçta.
 
alstjr7375 2023-01-04

Ben de öyle düşünüyorum. Eskiden TypeScript Handbook'ta da mümkün olduğunda önce interface kullanılmasının tavsiye edildiğini hatırlıyorum.

 
bichi 2023-01-04

Hepsi iyi de, 7. maddede interface yerine type kullanın demek gerçekten gerekli mi? Buna pek ipucu denemez. interfaceın ifade gücünün daha iyi olduğu durumlar da var; örneğin interface Foo {(b: number): A; (): B}

 
a741593 2023-01-04

Type’ı savunduğumdan değil ama ifade gücü daha iyi olan örneği tam anlayamadım. İlgili örnek cümle de Types ile aynı şekilde ifade edilemez mi?

interface Foo {(b: number): A; (): B}
type Foo = {(b: number): A; (): B}

 
harimkims 2023-01-05

Effective TypeScript kitabında type ile interface arasında hangisinin kullanılacağına dair özetlenmiş bir bölüm var; alıntılayayım.

Type ile interface arasında hangisini kullanmanız gerektiğine dair sonuca varalım. Karmaşık bir type söz konusuysa hiç düşünmeden type alias kullanabilirsiniz. Ancak type ve interface, ikisiyle de ifade edilebilen basit nesne tipleriyse bunu tutarlılık ve genişletme açısından değerlendirmek gerekir. Arayüzü tutarlı biçimde kullanan bir kod tabanında çalışıyorsanız interface kullanın; tutarlı biçimde type kullanılıyorsa type kullanın.

Henüz bir stilin yerleşmediği bir projeyse, ileride genişletme gereksinimi olup olmayacağını düşünmek gerekir. Herhangi bir API için type bildirimi yazmanız gerekiyorsa interface kullanmak daha iyidir. Çünkü API değiştiğinde kullanıcılar interface üzerinden yeni alanları birleştirebilir ve bu faydalıdır. Ancak proje içinde kullanılan tiplerde declaration merging meydana gelmesi kötü bir tasarımdır. Bu yüzden böyle durumlarda type kullanılmalıdır.