Nasıl kullanılır?
- JSON örneği alanına tipik bir JSON değeri yapıştırın. Türler yazdıkça görünür.
- Kök arayüz adı alanına en dıştaki nesne için bir ad yazın, örneğin Product.
- Türler aynı dosyada kalacaksa Her tanımın başına export yaz kutusunu boş bırakın.
- TypeScript arayüzleri metnini kopyalayın ya da types.ts olarak indirin.
Türler nasıl çıkarılır?
Her JSON nesnesi bir arayüz olur. Adı, onu tutan anahtardan PascalCase biçiminde gelir: first-name anahtarı FirstName olur. Bir dizinin öğeleri, dizinin anahtarının tekil hâlini alır; items anahtarı Item olur. Ad zaten kullanılmışsa, üst öğenin adı öne eklenir.
Metin, sayı ve mantıksal değerler string, number ve boolean olur. null, number | null gibi bir birleşimde null olarak yazılır. Değerlerden oluşan bir dizi, bir türün ardına [] eklenerek yazılır; örnek neyi tuttuğunu söylemediği için boş bir dizi unknown[] olur.
anahtar "first-name" -> özellik "first-name": string; items -> Item[]
Bir dizideki birden çok örnek
Nesnelerden oluşan bir liste tek bir şekil olarak okunur. Her öğede bulunan bir anahtar zorunludur; bazı öğelerde eksik olan bir anahtar soru işaretiyle, isteğe bağlı olarak yazılır. Farklı öğelerde farklı türler taşıyan bir anahtar birleşim olur: önce string, sonra number, boolean, arayüz, dizi ve null gelir.
Bir örnek yalnızca içerdiği değerleri gösterir. Gerçek bir API'nin bazen bıraktığı bir anahtar tek bir örnekte bulunmayabilir; isteğe bağlı olduğunu görmek istiyorsanız o anahtarı içeren ikinci bir öğe ekleyin.
Örnek: varsayılan örnek
Varsayılan örnek beş anahtarlı tek bir nesnedir. owner anahtarı bir nesne tuttuğu için kodda Owner arayüzü vardır. items anahtarı iki nesnelik bir dizi olduğu için Item arayüzü vardır. sku ve price iki öğede de bulunur ve zorunludur; discount bir öğede null, diğerinde sayıdır, bu yüzden number | null olur; note yalnızca bir öğede bulunur ve isteğe bağlıdır.
Sonuçta Root, Owner ve Item olmak üzere üç tanım çıkar ve tanım sayısı 3 gösterilir.
Sık sorulan sorular
Bir alanın yanında soru işareti neden var?
Alan, örneğin en az bir nesnesinde yoktur. Gerçek veride de yoksun olabilir; bu yüzden TypeScript onu isteğe bağlı sayar ve kod, alanı kullanmadan önce kontrol etmelidir.
Alanım neden string | number gibi bir birleşim gösteriyor?
Farklı öğeler o anahtar için farklı türler tutuyor. Tür, örnekte görülen tüm türleri listeler; kod değeri kullanmadan önce hangisini tuttuğunu denetlemelidir.
Araç gerçek API verilerimi denetliyor mu?
Hayır. Yapıştırdığınız örneğin türlerini yazar. Tek öğeli bir örnek, yalnızca sonradan gelen bir alanı gösteremez; mümkünse birden çok öğe içeren tipik bir yanıt kullanın.
Bazı özellik adları neden tırnak içinde?
first-name ya da 2fa gibi düz bir tanımlayıcı olmayan adlar TypeScript'te tırnak içinde yazılmalıdır. Geçerli tanımlayıcılar tırnaksız yazılır.
Çıktıyı JavaScript ile kullanabilir miyim?
Arayüzler yalnızca TypeScript'tir ve derleme sırasında silinirler. JavaScript projesinde JSON'u başka bir yolla denetlemeniz ya da TypeScript derleme adımı kullanmanız gerekir.
Kaynaklar
- TypeScript El Kitabı: nesne türleri, arayüzler ve isteğe bağlı özellikler
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format
Rakamlar ve metin en son 10 Kasım 2026 Salı tarihinde kontrol edildi.