Rehberler

TypeScript Nedir? Teknik Olmayanlar İçin Sade Bir Rehber

TypeScript, tiplerle donatılmış JavaScript'tir. Her değerin ne tür veri olması gerektiğini — bir sayı, metin, bir sipariş listesi — belirten etiketler eklersiniz ve TypeScript kodunuzu çalışmadan önce uyuşmazlıklara karşı kontrol eder. TypeScript sitesi bunu “tipler için söz dizimi içeren JavaScript” olarak tanımlar; tipler, kod sıradan JavaScript'e dönüştürülürken çıkarılır ve bu JavaScript, JavaScript'in çalıştığı her yerde çalışır.

Yapay zekayla geliştirirken neden önemli

Yapay zeka modelleri kodu hızlı yazar, ama hızlı kodda hatalar olur: bir dosyada customerName, başka bir dosyada customer_name alanı; fiyatın sayı yerine metin olarak geçmesi; eksik bir değerle çağrılan bir fonksiyon. Düz JavaScript'te bu hatalardan birçoğu, biri yanlış düğmeye tıklayana kadar ortaya çıkmaz.

TypeScript bunların birçoğunu, kod yazılırken daha erken yakalar:

  • Yapay zeka anında geri bildirim alır. Tip hataları, yanlış olan satırı tam olarak gösterir; böylece agent siz görmeden düzeltebilir.
  • Değişiklikler daha güvenlidir. Bir alanı yeniden adlandırdığınızda TypeScript, eski adı kullanan her yeri işaretler.
  • Kod kendini açıklar. Tipler, bir fonksiyonun neyi beklediğini ve neyi döndürdüğünü belgeler; bu, sizin, yapay zekanın ve daha sonra üzerinde çalışacak her geliştiricinin işine yarar.
  • Editörler daha akıllı olur. Otomatik tamamlama ve “tanıma git” daha iyi çalışır; çünkü editör her değerin ne olduğunu bilir.

Birçok yapay zeka uygulama oluşturucunun TypeScript'i varsayılan olarak seçmesinin büyük nedeni budur.

Günlük bir benzetme

Etiketli bölmeleri olan bir depoyu düşünün. Her bölmenin bir tabelası vardır: “Sadece paletler”, “Soğuk zincir”, “En fazla 500 kg”. Bir teslimat geldiğinde kapıdaki kontrolör malları tabelayla karşılaştırır. Dondurulmuş balığın kuru gıda bölmesine gitmeye çalıştığı, bir hafta sonra kokudan anlaşılmak yerine kapıda durdurulur.

TypeScript, kapıdaki kontrolördür. Tipler tabelalardır. Kontrol, kodunuz kullanıma girmeden önce yapılır. Ve her şey yerine oturduktan sonra tabelalar indirilir: çalışan JavaScript'in içinde artık hiç tip kalmaz.

TypeScript nasıl çalışır

  1. Siz (ya da yapay zeka) .ts veya .tsx dosyaları yazarsınız — tip etiketleri içeren TypeScript.
  2. Tip denetleyicisi kodu okur ve uyuşmazlıkları editörde ya da derlemede hata olarak bildirir.
  3. Bir derleme adımı tipleri kaldırır, düz JavaScript üretir.
  4. JavaScript tarayıcıda ya da sunucuda (Node.js, Deno, Bun) çalışır.

Önemli bir sonucu var: TypeScript, yazdığınız kodu kontrol eder; uygulama çalışırken gelen veriyi kontrol etmez. Dış bir API beklenmedik bir şey döndürürse, çalışma zamanı doğrulaması eklemediğiniz sürece TypeScript bunu göremez.

Çalışılmış bir örnek: bir rezervasyon formu

Diyelim ki bir kuaför salonu için rezervasyon uygulaması yapıyorsunuz. Bir rezervasyonu tanımlayan bir tip:

type Booking = {
  id: number;
  customerEmail: string;
  service: "haircut" | "colour" | "blow-dry";
  startsAt: Date;
  price: number;
  notes?: string; // ? işareti, alanın isteğe bağlı olduğu anlamına gelir
};

Ve bir kapora tutarını hesaplayan bir fonksiyon:

function depositFor(booking: Booking): number {
  return booking.price * 0.2;
}

Şimdi TypeScript'in neyi yakaladığına bakın.

Yanlış yazılmış bir alan.

depositFor({ id: 1, customerEmail: "lena@example.com", service: "haircut",
  startsAt: new Date(), prise: 40 });

TypeScript, prise adının bilinen bir özellik olmadığını ve price'ın eksik olduğunu bildirir. Düz JavaScript'te bu, sessizce NaN (sayı değil) olan bir kapora hesaplardı.

Yanlış türde bir değer.

const booking: Booking = { ...otherFields, price: "40" };

TypeScript, sayının beklendiği yerde bir metin kullanılamayacağını bildirir. Onsuz, "40" * 0.2 çalışır, ama "40" + 5 sonucu "405" verir — bir faturada ortaya çıkan türden bir hata.

Var olmayan bir hizmet.

const booking: Booking = { ...otherFields, service: "perm" };

TypeScript, "perm"in izin verilen hizmetlerden biri olmadığını bildirir. Salon daha sonra perm eklediğinde, bunu tipe eklersiniz ve TypeScript güncellenmesi gereken her yeri gösterir: fiyat listesi, form, takvim renkleri.

Neyi yakalayamaz? Rezervasyon formu tarayıcıdan sunucuya price: "40" gönderirse, sunucudaki TypeScript bunu çalışma zamanında görmez. Bu yüzden iyi yapılmış uygulamalar gelen veriyi de doğrular; genellikle şekli kontrol edip onu uygun bir Booking'e dönüştüren bir doğrulama kütüphanesiyle.

TypeScript ve JavaScript karşılaştırması

JavaScriptTypeScript
NedirTarayıcıların çalıştırdığı dilJavaScript artı tip söz dizimi
Tarayıcıda doğrudan çalışırEvetÖnce JavaScript'e dönüştürülür
Tip hatalarını yakalarÇalışma zamanında, varsaYazarken, çalıştırmadan önce
KurulumYokBir derleme adımı (genellikle Vite ya da Next.js gibi araçlarla)
Uygun olduğu yerKüçük betikler, hızlı denemelerBüyüyecek ve değişecek uygulamalar
Dosya uzantıları.js, .jsx.ts, .tsx

Sık kullanılan terimler

TerimAnlamı
TipBir değerin ne olabileceğinin tanımı: bir sayı, metin ya da belirli bir nesne şekli.
Tip açıklaması (annotation)Kodda yazılan etiket, örneğin price: number.
Tip çıkarımı (inference)TypeScript'in etiket olmadan tipi kendisinin belirlemesi.
Arayüz / tip takma adıBooking gibi bir nesne şeklinin adlandırılmış tanımı.
Birleşim tipi (union)"haircut" | "colour" gibi birkaç seçenekten biri olabilen bir değer.
İsteğe bağlı özellik? ile işaretlenmiş, eksik olabilen bir alan.
anyBir değer için kontrolü kapatan tip — az kullanılması gereken bir kaçış yolu.
Tip hatasıTypeScript'in bir şeyin uyuşmadığını bildirmesi.
Derleme / transpileTypeScript'i JavaScript'e çevirme.
.tsxJSX içeren, React uygulamalarında kullanılan TypeScript dosyası.
tsconfig.jsonProjede TypeScript'in ne kadar sıkı kontrol yapacağını belirleyen ayar dosyası.
Çalışma zamanı doğrulamasıUygulama çalışırken gerçek gelen veriyi kontrol etme.

Sık yapılan hatalar ve yanlış anlamalar

  • “TypeScript kodu hatasız yapar.” Veri şeklindeki uyuşmazlıkları yakalar, yanlış mantığı değil. Yüzde 20 yerine yüzde 2 kapora hesaplayan bir kod tip kontrolünden geçer.
  • “Tipler beni hatalı girdiden korur.” Tipler çalışma zamanında kaybolur. Kullanıcılardan, formlardan ve API'lerden gelen veriyi doğrulayın.
  • Her yerde any. Bir yapay zeka sıkıştığında hataları susturmak için any ya da // @ts-ignore kullanabilir. Bu, sorunları çözmek yerine saklar.
  • Önizleme çalıştığı için tip hatalarını görmezden gelmek. Bazı araçlar tip hatası olan kodu yine de çalıştırır. Bu hatalar hâlâ ileride çıkacak birer hatadır.
  • “TypeScript daha yavaştır.” Tipler çalıştırmadan önce kaldırılır; çalışan JavaScript temelde aynıdır.
  • “Yalnızca büyük ekipler içindir.” Yalnız çalışan geliştiriciler de faydalanır; özellikle düzenlemelerin çoğunu bir yapay zeka yaptığında.

Yapay zeka oluşturucunuzdan ne istemelisiniz

  • “TypeScript'i strict modda kullan.”
  • “Ana kayıtlarımız için — Customer, Booking, Invoice — ortak tipler tanımla ve bunları hem ön yüzde hem arka yüzde kullan.”
  • “Hataları geçmek için any ya da @ts-ignore kullanma; asıl sorunu düzelt ve neydi, söyle.”
  • “Gelen tüm veriyi yalnızca tiplerle değil, sunucuda da doğrula.”
  • “Bitti demeden önce tip denetleyicisini çalıştır ve her hatayı düzelt.”
  • “Bir alanı yeniden adlandırdığında, TypeScript'in işaretlediği her yeri güncelle.”
  • “Bu tip hatasını sade bir dille açıkla.”

Yapay zekanın ürettiği kodu kontrol etme hakkında daha fazlası için yapay zeka tarafından üretilen kod nasıl incelenir ve yapay zekayla oluşturulan bir uygulamadaki hatalar nasıl ayıklanır rehberlerine bakın.

Mythex'te TypeScript

Belirli bir şey istemezseniz Mythex yeni projeleri Vite + React + TypeScript + Tailwind ile başlatır. Kod düzenleyici dil zekâsı içerir — TypeScript ve JavaScript için tamamlamalar, tanılamalar ve tanıma git gibi diğer dillerin yanında — böylece tip hataları yalnızca önizlemede değil, kodun içinde görünür. Düzenleyici Free'de salt okunurdur, Pro'da tamamen düzenlenebilir. İlk isteminizde farklı bir kurulum da isteyebilirsiniz; teknolojinin nasıl seçildiğini anlatan dokümantasyon sayfası bunu açıklar ve kod düzenleyici dokümantasyonu editörün neleri gösterdiğini anlatır.

Sorular

TypeScript basitçe nedir?

TypeScript, tiplerle donatılmış JavaScript'tir. Her değerin ne tür veri olması gerektiğini, örneğin bir sayı, metin ya da müşteri kaydı olduğunu etiketlersiniz; TypeScript kod çalışmadan önce uyuşmazlıkları kontrol eder. Ardından düz JavaScript'e dönüştürülür.

TypeScript, JavaScript'ten farklı bir dil mi?

JavaScript'in bir üst kümesidir: JavaScript artı tipler için ek söz dizimi. TypeScript sitesi bunu “tipler için söz dizimi içeren JavaScript” olarak tanımlar. Tipler, kod çalıştırılmak üzere JavaScript'e dönüştürülürken kaldırılır.

Yapay zeka uygulama oluşturucular neden TypeScript kullanır?

Tipler, yapay zekaya ve çevresindeki araçlara hataları hızlıca yakalama yolu sunar; örneğin bir sayının beklendiği yere metin göndermek ya da bir alan adını yanlış yazmak gibi. Hatalar bir kullanıcının karşılaşmadan önce ortaya çıkar; bu da yapay zekanın ürettiği kodu kontrol etmeyi ve değiştirmeyi kolaylaştırır.

TypeScript uygulamayı hatasız yapar mı?

Hayır. Verinin şekliyle ilgili bir hata sınıfını yakalar, ama yanlış iş mantığını yakalamaz. Kullanıcılardan ya da API'lerden çalışma zamanında gelen veriyi, siz doğrulama eklemediğiniz sürece kontrol etmez.

TypeScript'i kim geliştiriyor?

TypeScript, Microsoft tarafından geliştirilen açık kaynaklı bir dildir. JavaScript'in çalıştığı her yerde çalışır; bunlara tarayıcılar, Node.js, Deno ve Bun dahildir.

Mythex · Pricing · Yapay zekayla her şeyi yapın · Web sitesi ve uygulama şablonları · Mythex karşılaştırmaları · Yapay zekayla uygulama geliştirme sözlüğü · Yapay zekayla uygulama geliştirme için ücretsiz araçlar · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)