Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
JavaScript Scope, Hoisting ve Closure: Değişkenler Nerede Yaşar?
Global, function ve block scope'u, scope chain'i, hoisting'i ve TDZ'yi; closure'ı da sayaç, private veri ve fonksiyon fabrikası örnekleri ve döngüdeki meşhur tuzakla birlikte öğreniyoruz.
JavaScript Array Method'ları Derinlemesine: map, filter, reduce, toSorted ve Object.groupBy
map, filter, reduce, find ailesi, some/every ve flatMap'i üretim bandı benzetmesiyle anlıyor; array'i bozmayan toSorted ve with method'larını (ES2023) ve Object.groupBy ile gruplamayı (ES2024) deniyoruz.
JavaScript Modern Syntax: Destructuring, Spread/Rest, Optional Chaining ve Mantıksal Atama
Array ve object destructuring'i, spread ve rest farkını, kısa property ve computed property yazımını, ?. ile ?? kullanımını ve ||=, &&=, ??= operatörlerini hangi ES sürümüyle geldikleriyle birlikte öğreniyoruz.
Tarayıcıda TypeScript: DOM Tipleri, querySelector ve Event'ler
lib.dom tiplerini, querySelector'ın dönüş tiplerini ve generic kullanımını, HTMLInputElement gibi element type'larını, event tiplerini ve event.target tuzağını görüyor, tsc çıktısını bir module script ile sayfada çalıştırıyoruz.
tsconfig Temelleri: TypeScript 7 Varsayılanları ve Kaldırılan Ayarlar
tsconfig.json'daki strict ailesini, target, lib, types, module, outDir ve rootDir ayarlarını, erasableSyntaxOnly ile verbatimModuleSyntax'ı, TypeScript 6/7 varsayılanlarını ve 7.0'da kaldırılan seçenekleri görüyoruz.
TypeScript'te Type Assertion, !, satisfies ve as const: Derleyiciye Ne Zaman Ne Söylenir?
as ile type assertion'ın neyi denetleyip neyi denetlemediğini, ! işaretinin riskini, TS 4.9 ile gelen satisfies'ın hem kontrol edip hem dar tipi korumasını ve as const ile readonly literal'ları görüyoruz.
Intersection ve Structural Typing: TypeScript Tiplere Nasıl Bakar?
TypeScript'in tiplere isimle değil şekille baktığı structural typing'i, atanabilirlik kuralını, excess property kontrolüyle ilişkisini ve & ile type'ları birleştiren intersection'ı örneklerle görüyoruz.
TypeScript'te Fonksiyonların Tipleri: Parametreler, Dönüş Tipi ve Overload'lar
Parametre ve dönüş tiplerini; optional, default ve rest parametreleri, function type expression ve call signature'ı, void dönüşün inceliğini, overload'ları ve this parametresini örneklerle görüyoruz.
TypeScript'te Narrowing: Union'ları Daraltmak ve Control Flow Analysis
TypeScript'in control flow analysis ile union'ları nasıl daralttığını; typeof, truthiness, eşitlik, in ve instanceof kontrollerini, discriminated union'ları ve never ile exhaustive check'i görüyoruz.
TypeScript'te Union ve Literal Tipler: Bir Değer, Birkaç İhtimal
Union ile 'ya bu ya şu' tiplerini, literal tiplerle sınırlı değer listelerini, object içinde literal'lerin neden genişlediğini, as const'a ilk bakışı ve union'ların neden narrowing gerektirdiğini görüyoruz.
TypeScript'te Type Alias ve Interface: Tiplere İsim Vermek
type alias ve interface ile tiplere isim vermeyi, extends ile intersection arasındaki farkı, declaration merging'i, hangisinin ne zaman seçileceğini ve isimlendirme alışkanlıklarını örneklerle görüyoruz.
TypeScript'te Object Tipleri: Optional, readonly Property ve Index Signature
Inline object type'ları, optional ve readonly property'leri, index signature'ı, Record'u ve fazla property kontrolünün fresh object literal kuralını, yani TypeScript'in fazla property'yi neden bazen yakaladığını görüyoruz.