İçeriğe atla
%100 yerel

TypeScript Türünü JSON Schema'ya

TypeScript arayüzünü veya tür takma adını JSON Schema'ya dönüştürün.

Giriş
Çıkış

TypeScript Türünü JSON Schema'ya

TypeScript arayüzünü veya tür takma adını yapıştırın; bu araç eşdeğer JSON Schema'yı oluşturur; bu, API yüklerini, yapılandırma dosyalarını veya tür tanımlarınızla eşleşmesi gereken başka JSON verilerini doğrulamak için hazırdır. Verilerinin şekillerini zaten TypeScript'te tanımlayan ve sıfırdan yazmanız veya bir yapı adımı kurmanız gerekmeden bir şemaya ihtiyaç duyan geliştiriciler için tasarlanmıştır.

JSON Schema draft-07 ile yeni 2020-12 diyalekti arasında seçim yapın; çünkü doğrulayıcılar ve araçlar hala hangi diyalekti beklediğinde farklılık gösterir. 'active' | 'inactive' gibi dize harfli birleşimler, enum veya const değerlerinin anyOf'u olarak oluşturulabilir; nesnelerden bilinmeyen özellikleri reddetmesini isteyebilir; belge yorumlarını açıklama alanlarına dönüştürebilir; veya adlandırılmış arayüzleri, her yerde kullanıldıkları $ref yerine $defs (veya definitions) bloğuna çıkarabilirsiniz.

Diziler, demet'ler, Record ve Map türleri ve null içeren birleşimler, TypeScript'in aslında onları nasıl kullandığı şekilde ele alınır — boş değere sahip bir alan, tür dizisine veya anyOf dalına dönüşür. JSON Schema ile ifade edilemeyen yöntemler ve işlev türleri gibi yapılar, mümkün olan en izin verici şekilde dönüştürülür; sonucun altında hangi alanın neden bu şekilde olduğunu açıklayan uyarılar listelenir; böylece hiçbir şey sessizce başarısız olmaz.

Her şey tarayıcınızda yerel olarak çalışır; TypeScript tür tanımlarınız ve oluşturulan şema hiçbir zaman başka bir yere yüklenmez. Sonucu kopyalayın, bir .txt dosyası olarak indirin veya başka bir araçtın girişine gönderin; çalışmaya devam edin.

FAQ

TypeScript'in hangi parçaları dönüştürülebilir?
Arayüzler, tür takma adları, iç içe nesne sabit değerleri, diziler, demet'ler, Record/Map/Set, Date, Partial/Required/Pick/Omit ve dize harfli birleşimler ve null dahil birleşimler. JSON Schema eşdeğeri olmayan yöntemler ve işlev türleri gibi yapılar atlanır ve uyarı olarak listelenir.
Draft-07 ile 2020-12 arasındaki fark nedir?
Her ikisi de JSON Schema diyalektidir. 2020-12 güncel olanı ve tuple'ler için $defs ve prefixItems kullanır; draft-07 definitions ve bir items dizisi kullanır. Doğrulayıcınızın beklediğini seçin.
'?' ile işaretlenmiş özellikler ne olur?
Şemanın gerekli dizisinden çıkarılırlar; böylece oluşturulan şema, TypeScript'in hangi alanların isteğe bağlı olduğu hakkındaki fikriyle eşleşir.
Bazı alanlar neden boş şema {} ile sonlanır?
Bu, JSON Schema'nın ifade edemeyeceği yapılar için olur; örneğin genel bir tür parametresi veya aracın çözemeyeceği bir tür. Sonucun altına hangi alanın neden olduğunu açıklayan bir uyarı eklenir.
TypeScript kodum bir yere yükleniyor mu?
Hayır. Dönüştürme tamamen tarayıcınızda çalışır — TypeScript tür tanımlarınız ve oluşturulan şema asla cihazınızı terk etmez.