21 puan yazan bboydart91 2026-01-26 | 3 yorum | WhatsApp'ta paylaş

Özet:

  • TypeScript'in tip sistemini yalnızca basit bir statik tip denetleyicisi olarak değil, mantığın bir kanıtlama sistemi olarak yorumlayan bir bakış açısı sunuluyor.
  • Curry–Howard yazışmasına (Type = Proposition, Program = Proof) dayanarak, tip çıkarımının neden mümkün olduğu kavramsal olarak açıklanıyor.
  • Fonksiyon tipleri, generics, koşullu tipler ve tip daraltma gibi TypeScript özellikleri; mantıksal ima, evrensel niceleme ve durum analiziyle eşleştirilerek anlatılıyor.
  • Tip denetimi süreci, kural uygulamaktan ziyade önermeler arasındaki ilişkiyi doğrulama süreci olarak yorumlanıyor.
  • Uygulama ayrıntılarından çok, TypeScript tip sisteminin tasarım arka planı ve matematiksel yapısına odaklanılıyor.

Ayrıntılı özet:

  1. Arka plan: Tip çıkarımı neden mümkün?
    Statik tipli dillerde tip çıkarımı çoğu zaman “derleyici tipleri nasıl birbirine uyduruyor?” şeklinde bir uygulama problemi olarak açıklanır.
    Bu yazı ise bir adım geri çekilip, tip çıkarımının en baştan neden mümkün olduğunu soruyor.
    Yanıt olarak da tip sistemini mantığın bir kanıtlama sistemi olarak gören bir bakış açısı sunuyor.

  2. Kuramsal temel: Curry–Howard yazışması
    Curry–Howard yazışmasına göre tipler (Type), önermelere (Proposition) karşılık gelir; programlar (Program) ise bu önermelerin kanıtlarına (Proof) karşılık gelir.
    Bu bakış açısından tip denetimi, bir programın belirli bir önermeyi sağlayıp sağlamadığını doğrulama süreci olarak yorumlanır.

  3. TypeScript özellikleri ile mantıksal yapı arasındaki karşılık
    Yazıda TypeScript'in başlıca özellikleri şu şekilde ilişkilendiriliyor:

  • Fonksiyon tipleri → mantıksal ima (Implication)
  • Generics → evrensel niceleme (Universal Quantification)
  • Koşullu tipler / tip daraltma → durum analizi (Case Analysis)
    Böylece neden bazı tip ifadelerinin doğal göründüğü,
    ve neden bazı tiplerin yapısal olarak ifade edilmesinin zor olduğu açıklanıyor.
  1. Tip sisteminin sınırları ve tasarım tercihleri
    Bu bakış açısından TypeScript'in kısıtları ve sınırları, “özellik eksikliği” değil, mantıksal tutarlılığı korumaya yönelik tasarım tercihleri olarak anlaşılabilir.
    Yazı, pratik teknikler ya da hilelerden çok, tip sisteminin hangi felsefi ve matematiksel arka plan üzerinde şekillendiğini açıklamaya odaklanıyor.

3 yorum

 
pjh2568 2026-01-27

Keyifle okudum, teşekkürler.

 
devjeonghwan 2026-01-26

Linting olmadığını söylüyorlar ama... tip denetiminin katı bir Contract uygulaması olduğunu kanıtlamak için, o sözleşmenin binary ve runtime'da zorunlu kılınması gerekmez mi? Aksi halde bu hâlâ havada kalan, sözdizimi düzeyinde bir tür tip linting'i değil mi gibi geliyor bana.

 
tsboard 2026-01-26

Oldukça etkileyici bir içerikti. Böyle bir bakış açısıyla değerlendirilebileceğini ilk kez fark ettim. İş arkadaşlarıma da bir göz atmalarını söyleyerek şirket içinde blog bağlantısını paylaştım. Teşekkürler!