İçeriğe geç

JSON'dan TypeScript Arayüzü ve Türü Oluşturucu

API yanıtı gibi bir JSON örneğinden TypeScript arayüzleri veya tür takma adları üretin. İç içe yapılar, null ve karma diziler işlenir; dönüştürme tarayıcınızda yapılır.

API yanıtı için adlandırılmış TypeScript türleri oluşturmak.

Converted in your browser. Null stays a value type; ? marks a field missing from some objects in an array. Empty arrays use unknown elements.

Load an example (replaces your input)

JSON

TypeScript

Ne zaman kullanılır?

  • API yanıtı için adlandırılmış TypeScript türleri oluşturmak.
  • Farklı türleri ve isteğe bağlı alanları görmek için bir dizideki nesneleri karşılaştırmak.

Nasıl kullanılır?

  1. Gerçek JSON yapıştırın veya örneklerden birini yükleyin. Örnek yüklemek girdinizi değiştirir.
  2. Kök tür adını belirleyin ve interface (iç içe nesneler ayrı türlere dönüşür) ya da type (iç içe nesneleri satır içinde tutan tek tür takma adı) seçin.
  3. null değerleri, isteğe bağlı (?) alanları ve string/number birleşimlerini kontrol edip türleri kopyalayın.

JSON girdisi

[{"id":1,"name":"Tokyo"},{"id":2}]

TypeScript çıktısı (Root, interface)

export type Root = RootValueItem[];

export interface RootValueItem {
  id: number;
  name?: string;
}

Ayrıntılar ve sınırlamalar

Her dizi öğesi incelenir. Örnekte ikinci nesnede name yoktur, dolayısıyla isteğe bağlı olur. null değeriyle mevcut olan bir alan ise null içeren birleşim türüne dönüşür.

Boş dizi unknown[] üretir. Karma diziler sabit uzunluklu tuple yerine birleşim türü dizilerine dönüşür.

Türler yalnızca örnekte görünenleri kapsar. Hiç görünmeyen alanlar, tarih veya e-posta biçimleri, değer aralıkları ve alanlar arası ilişkiler çıkarılmaz.

Girdi standart JSON olmalıdır; önce JSON biçimlendiriciyle yorumları veya sondaki virgülleri temizleyin. Baştaki sıfırları olan kimlikleri dize olarak girin.

Girdi en fazla 1.000.000 karakter, yaklaşık 64 düzey ve 50.000 değerle sınırlıdır. TypeScript türleri veriyi çalışma zamanında doğrulamaz.

FAQ

interface mi type mı üretmeliyim?

İkisi de aynı yapıyı tanımlar. interface, her iç içe nesne için yeniden kullanımı kolay adlandırılmış bir arayüz oluşturur; type ise iç içe nesneleri satır içinde yazan tek bir tür takma adı oluşturur.

TypeScript sınıfı üretebilir mi?

Hayır, yalnızca arayüz veya tür takma adı üretir. Çalışma zamanı doğrulaması gerekiyorsa JSON → Zod kullanın ve şemayı kurallarınıza göre düzenleyin.

null ile isteğe bağlı alan arasındaki fark nedir?

{"name":null} içinde değeri null olan name alanı vardır; {} içinde name hiç yoktur. null türde kalır, ? ise yalnızca aynı dizideki bazı nesnelerde alan eksik olduğunda eklenir.

Kökteki bir JSON dizisi ne üretir?

Yukarıdaki örnekteki gibi dizi için tür takma adı ve öğeleri için arayüz üretir; Root, RootValueItem[] olur.

Teknik özellikler ve kaynaklar