Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
TypeScript Nedir, Neden Var? JavaScript'e Eklenen Tip Katmanı
TypeScript'in JavaScript'e eklediği tip katmanını, derleme zamanı ile çalışma zamanı farkını, tip denetiminin neleri yakaladığını ve TypeScript 7 ile gelen değişiklikleri örneklerle görüyoruz.
TypeScript Kurulumu: Kodu Çalıştırmak ile Tip Denetimi Aynı Şey Değil
TypeScript Playground, npm ile kurulum, tsc --init, npx tsc --noEmit ve Node 26 ile node file.ts: kodu çalıştırmanın neden tip denetimi anlamına gelmediğini ve ilk hata mesajını okumayı görüyoruz.
TypeScript'te Type Inference ve Annotation: Tipi Ne Zaman Sen Yazarsın?
TypeScript'in type'ı nasıl kendisi çıkardığını, let ile const arasındaki widening farkını, parametrelere neden annotation yazıldığını ve dönüş tipini ne zaman açıkça yazman gerektiğini örneklerle görüyoruz.
TypeScript'te Temel ve Özel Tipler: any, unknown, never ve void
string, number, boolean, bigint ve symbol'ün yanında null ve undefined'ın strict moddaki yerini, any'nin neden tehlikeli olduğunu, unknown'ın onu nasıl güvenli hâle getirdiğini ve void ile never'ı görüyoruz.
TypeScript'te Array ve Tuple Tipleri: readonly, Optional Element ve Named Tuple
string[] ve generic Array yazımını, readonly array'leri, sabit uzunluklu tuple'ları, optional ve rest element'leri, named tuple'ları ve noUncheckedIndexedAccess ayarının index okumalarını nasıl değiştirdiğini 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.
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 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 daraltma gerektirdiğini 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 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.
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 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.