Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
TypeScript'te Conditional Types: Tip Seviyesinde Karar Vermek
T extends U ? X : Y sözdizimini, extends'in atanabilirlik anlamını, union'larda distributive davranışı, [T] ile dağılmayı kapatmayı ve never ile union filtrelemeyi tsc çıktılarıyla görüyoruz.
TypeScript'te infer: Conditional Type İçinde Tip Yakalamak
infer ile kalıba uyan type'tan parça yakalamayı, ReturnType, Parameters ve Awaited'ı kendimiz yazmayı, tuple ve string kalıplarını, infer constraint'lerini ve overload tuzağını görüyoruz.
TypeScript'te Mapped Types: Bir Type'tan Yeni Bir Type Üretmek
Mapped type sözdizimini, homomorphic mapped type'ların readonly ve ? modifier'larını nasıl taşıdığını, + ve - ile modifier yönetimini, as ile key remapping ve never ile filtrelemeyi görüyoruz.
TypeScript'te Template Literal Types: String'leri Tip Seviyesinde Kurmak
Template literal type'larla union çarpımını, ${number} gibi kalıpları, Uppercase ve Capitalize intrinsic'lerini, event adı türetmeyi, mapped type ile key üretmeyi ve infer ile route ayrıştırmayı görüyoruz.
TypeScript'te Recursive Tipler: JSON, DeepReadonly ve DeepPartial
Kendine referans veren type'ları, recursive bir JSON type'ını, fonksiyon ve array tuzaklarıyla DeepReadonly ve DeepPartial'ı, recursive conditional type'ları ve TS2589 sınırını görüyoruz.
TypeScript'te Variance ve Atanabilirlik: Covariance, Contravariance ve strictFunctionTypes
Atanabilirliğin yönünü, dönüş tiplerinde covariance'ı, parametrelerde contravariance'ı, strictFunctionTypes'ı, method bivariance'ı, array'lerin açığını ve in/out variance annotation'larını görüyoruz.
TypeScript'te Branded Tipler: UserId ile OrderId'yi Karıştırmamak
Structural typing'in aynı şekle sahip ama anlamı farklı değerleri ayıramadığı yerde brand'leri, doğrulama fonksiyonlarıyla brand üretmeyi ve unique symbol ile daha sağlam bir Brand yardımcısı yazmayı görüyoruz.
TypeScript'te Decorator'lar: Standart TC39 Decorator'ları ve context Object'i
TS 5.0 ile gelen standart decorator'ları; method, class, field ve accessor decorator'larını, context object'ini, neden erasable olmadıklarını ve eski experimentalDecorators ayarından farklarını görüyoruz.
TypeScript'te using ve await using: Symbol.dispose ile Kaynak Yönetimi
TS 5.2 ile gelen using ve await using'in TypeScript tarafını görüyoruz: Disposable type'ları, gereken lib ayarı, derleyicinin kontrolleri, DisposableStack ve tsc'nin ürettiği JavaScript'in Node ile Safari'de ne anlama geldiği.
TypeScript'te Tip Seviyesinde Programlama: type-challenges Kolay Seviye Çözümleri
type-challenges'ın kolay seviyesinden on soruyu (MyPick, MyReadonly, TupleToObject, First, Length, MyExclude, MyAwaited, If, Concat, Includes) Equal ve Expect ile yazılmış tip seviyesinde testlerle çözüyoruz.
JavaScript'ten TypeScript'e Geçiş: checkJs, JSDoc ve Kademeli strict
Bir JavaScript projesini TypeScript'e kademeli geçirmeyi görüyoruz: allowJs, checkJs ve // @ts-check, JSDoc ile tip yazmak, TypeScript 7'deki JSDoc değişiklikleri, kademeli strict ve @ts-expect-error.
TypeScript 7 ve Sonrası: Go ile Yazılan Derleyici ve Yeni Varsayılanlar
Go ile yazılan TypeScript 7 derleyicisini, 6.0 ile gelen varsayılanları, 7.0'da kaldırılan ayarları, isolatedDeclarations'ı, TC39 Type Annotations önerisini ve 7.1 betasının getirdiklerini görüyoruz.