JSON'dan TypeScript nasıl oluşturulur?
- Bir JSON örneği yapıştırın. Dizilerde ne kadar çok öğe olursa isteğe bağlı alanlar ve union'lar o kadar iyi algılanır.
- Kök türün adını belirleyin ve
exportilereadonlykullanarak ya da kullanmadaninterfaceveyatypeseçin. - TypeScript kodunu projenize kopyalayın veya
.tsdosyası olarak indirin.
JSON'dan TypeScript türleri nasıl çıkarılır?
| JSON | TypeScript |
|---|---|
"Ada" | string |
42, 3.14 | number |
true | boolean |
diğer değerlerin yanında null | string | null gibi bir union |
"address": {"city": "Paris"} | ayrı bir interface Address |
"users": [{"id": 1}] | User[] – öğe adı tekil hale getirilir |
| bazı dizi öğelerinde eksik olan bir anahtar | isteğe bağlı bir özellik key?: |
[1, "a"] | (string | number)[] |
[] | unknown[] |
{} | Record<string, unknown> |
Örnek
{"id": 1, "name": "Ada", "tags": ["admin"], "manager": null} JSON verisi şuna dönüşür:
export interface Root { id: number; name: string; tags: string[]; manager: null; }
Root adını User veya ApiResponse gibi anlamlı bir adla değiştirin. Tamamen aynı yapıya sahip iç içe nesneler – örneğin fatura ve teslimat adresi – tek bir interface paylaşır; geçerli tanımlayıcı olmayan anahtarlar ise tırnak içine alınır, ör. "first-name": string.
Sıkça sorulan sorular
Interface mi, type mı – hangisini seçmeliyim?
Nesne yapıları için ikisi de aynı şekilde davranır. Interface'ler genişletilebilir ve birleştirilebilir; type alias'lar ise union'ları da tanımlayabilir. Birçok ekip nesneler için interface kullanır; kod tabanınızın stilini takip edin.
İsteğe bağlı alanlar nasıl algılanır?
Aynı dizideki nesneler birleştirilir. Bazılarında eksik olan bir anahtar isteğe bağlı olur (key?:), farklı değer türlerine sahip bir anahtar ise union'a dönüşür.
Bu araç verileri çalışma zamanında doğrular mı?
Hayır. TypeScript türleri kod çalıştığında ortadan kalkar. Gelen verileri kontrol etmek için aynı örnekten JSON Schema Oluşturucu ile bir JSON Schema üretin ve bir şema kütüphanesiyle bu şemaya göre doğrulayın.
JSON'um bir sunucuya gönderiliyor mu?
Hayır. Türler tarayıcınızda oluşturulur; bu yüzden gizli API yanıtlarını güvenle yapıştırabilirsiniz.