Sol tarafa TypeScript'i yapıştırın ve "Dönüştür"'e tıklayın — biz JSON'a çeviririzTypeScript yapıştırın

Bu araç ne yapar

Elinizde bir TypeScript interface'i ve tipli bir nesne literal'i, ya da bir const config: Config = {...} ataması var; bu değere API isteği, fixture ya da OpenAPI örneği için gerçek JSON olarak ihtiyacınız var. Bloğun tamamını buraya yapıştırın. Araç tip açıklamalarını kaldırır, literal'i çözer ve her yerde parse edilebilen JSON'u size verir.

Yalnızca-tip söz dizimi, TypeScript derleyicisinin emit aşamasında nasıl işlediyse öyle işlenir: interface'ler ve type alias'ler silinir, as const ve satisfies çıktıyı değiştirmez, Record<string, X> nesne olarak kalır, readonly ve ? düzenleyicileri JSON'da yok sayılır (eksik opsiyonel alanlar hiç görünmez). Dize tırnaklama biçimi JSON.stringify ile aynıdır — çift tırnak, gerekli yerlerde escape — ve anahtarlar her zaman string'dir.

Enum'lar çalışma zamanı değerini yayar. Sayısal enum sayıya, string enum string'e döner. Date örnekleri RFC 8259 uyarınca ISO-8601 olarak çıkar. undefined özellikler düşer, null ise null olarak kalır. İsterseniz birden fazla interface'i ve örneklerini tek seferde yapıştırabilirsiniz — her örnek JSON'da üst seviye bir giriş olarak yer alır.

Nasıl kullanılır

Üç adım. Beş satırlık bir interface için de, koca bir <code>types.ts</code> modülü için de çalışır.

1

TypeScript'inizi yapıştırın (veya örneği deneyin)

Soldaki editöre bırakın. Bir interface + tipli nesne, type alias, enum tanımları veya export'lu const bildirimleri — hepsi olur. Gerçekçi bir girdinin nasıl göründüğünü görmek için Örnek Yükle'ye tıklayın.

TypeScript handbook tarzı söz dizimini olduğu gibi bırakın — generic'leri, decorator'ları veya import type ifadelerini temizlemeye gerek yok. JS'ten JSON'a eşlemenin nasıl çalıştığına dair bir hatırlatıcı için MDN JSON referansı'na bakın.

2

Dönüştür'e basın

Yeşil Dönüştür düğmesine tıklayın. Araç tip bilgisini siler, literal değerleri değerlendirir ve JSON.stringify(obj, null, 2)'nin yapacağı şekilde serialize eder.

3

JSON'u kopyalayın

Sağdaki panel, istek gövdesine, bir OpenAPI örneğine ya da bir unit test fixture'ına yapıştırmaya hazır, güzelce biçimlenmiş JSON gösterir.

Gerçekten işe yaradığı yerler

API istek örnekleri

Angular, Next.js veya NestJS istek DTO'nuz var ve Swagger, Postman ya da curl komutu için JSON payload lazım. Interface'i + nesneyi yapıştırın, JSON'u alın.

Unit test fixture'ları

Bir Jest ya da Vitest testinde kullanılan satır içi tipli mock'u, MSW, Playwright veya entegrasyon koşumları için bağımsız bir JSON fixture'a dönüştürün.

OpenAPI ve JSON Schema örnekleri

<code>User</code> interface'ini ve bir örnek instance'ı yapıştırarak <a href="https://swagger.io/specification/" target="_blank" rel="noopener">OpenAPI</a> şemanızın <code>example</code> bloğunu tek seferde üretin.

Config'i JSON'a taşıma

Tipli bir <code>config.ts</code>'ten JSON tabanlı bir config deposuna mı geçiyorsunuz? Tipli const'ı yapıştırın, temiz JSON'u alın ve yeni config sisteminize bırakın.

Sık sorulanlar

Tip açıklamalarını ve generic'leri temizliyor mu?

Evet. Interface'ler, type alias'ler, generic parametreler, as cast'leri, satisfies ve readonly, TypeScript derleyicisinin sildiği biçimde tamamen silinir. JSON yalnızca çalışma zamanı değerini yansıtır.

Enum'lar nasıl işleniyor?

Sayısal enum'lar sayıyı, string enum'lar string'i yayar. Dönüşüm açısından const enum, normal bir enum ile aynı şekilde ele alınır. Nesne literal'inin içindeki enum referansları, tanımlı değerlerine çözülür.

Peki opsiyonel alanlar ve Record tipleri?

Eksik opsiyonel alanlar (name?: string) JSON'da hiç görünmez — JSON.stringify'ın varsayılan davranışı ile aynı. Record<string, X>, verdiğiniz string anahtarlarla anahtarlanmış bir JSON nesnesi olarak kalır.

Bir types dosyasının tamamını yapıştırabilir miyim?

Evet. Birden fazla interface, type alias, enum ve tipli const bildirimi tek bir yapıştırmada bir arada olabilir. Üst seviye her tipli instance JSON'da kendi girişi olarak yer alır; iç içe tipler yerinde genişletilir.

Date, null ve undefined nasıl ele alınıyor?

Date değerleri ISO-8601 string'lerine dönüşür. null JSON'da null olarak kalır. undefined özellikler nesnelerden düşer. Dizilerdeki undefined elemanlar o yuvada null'a dönüşür — JSON.stringify ile tutarlı.

Kodum saklanıyor mu?

Kod yalnızca dönüştürülmek üzere backend'e gönderilir. Log'lanmaz, kalıcı olarak saklanmaz. Hassas bir şey yapıştıracaksanız önce bir göz atın.

İhtiyacınız olabilecek diğer araçlar

TypeScript'ten JSON'a yalnızca bulmacanın bir parçası. Bununla iyi giden araçlar şunlar: