# Maguyva'da TypeScript Desteği: Monorepo'lar için Daha İyi Bağlam

Canonical source: https://maguyva.ai/tr/languages/typescript

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva, AST ayrıştırma ve sembol çıkarımıyla TypeScript'i destekler; böylece yapay zeka ajanları monorepo'lar genelinde arayüzleri, uygulamaları, paylaşılan paketleri ve JSX ağırlıklı uygulama kodunu izleyebilir.

## Destek anlık görüntüsü

- Katman: AST ve sembol desteği
- Programlama
- Uzantılar: .cts, .d.ts, .mts, .spec.ts, .stories.ts, .test.ts, +1 daha
- Sözdizimi farkında arama ve yapısal bağlam için gerçek AST ayrıştırması.
- Adlandırılmış semboller anlamsal aramayı ve çapraz referansı besler. İlişki çıkarımı etkinleştirildiğinde graf gezinmesi kullanılabilir.
- Bu dil, graf farkındalıklı aramaya semboller ve ilişkiler sağlar; desteklenen kenar türleri dilin yerel yapılarına göre değişir.
- Hem AST ayrıştırma hem de sembol çıkarma kullanılabilir.

## En uygun kullanım

- Tek bir TypeScript reposu içinde Next.js, Node servisleri, paylaşılan paketler ve araçlar çalıştıran ürün ve platform ekipleri.
- Arayüzlerin, DTO'ların, şemaların ve React bileşenlerinin birlikte hareket ettiği ama farklı dizinlerde yaşadığı repolar.
- Paylaşılan türlere veya paket sınırlarına dokunmadan önce yapay zeka ajanlarına güvenli bağlam vermeye çalışan ekipler.

## Ajan iş akışları

- Bir türü, arayüzü veya bileşeni tanımından onu gerçekten kullanan kod yollarına kadar takip edin.
- Paylaşılan bir yardımcıyı veya API sözleşmesini değiştirmeden önce paketler arasındaki uygulamaları karşılaştırın.
- Paylaşılan bir türü, yardımcı programı veya servis modülünü düzenlemenin olası etki yarıçapını haritalayın.

## TypeScript sayfaları neden önemli

TypeScript, pek çok ekibin yapay zeka destekli yeniden yapılandırmanın nihayet güvenli hissettirmesini beklediği dildir. Tip sistemi yardımcı olur, ama gerçek sorunu ortadan kaldırmaz: paylaşılan paketler, DTO'lar, üretilmiş istemciler, React bileşenleri, testler ve uygulama kodu, büyük bir repo genelinde hepsi aynı adları çekiştirir.

TypeScript için standart, "sözdizimini anlıyor"dan daha yüksektir. Ajanın, paylaşılan bir türü, hook'u veya istemciyi düzenlemeden önce sözleşmeyi tanımdan uygulamaya, oradan etki yarıçapına kadar takip etmesi gerekir.

## Maguyva TypeScript'te gerçekte neyi çıkarıyor

Maguyva, `.ts`, `.mts`, `.cts` ve testler ile story'ler etrafındaki yaygın TypeScript dosya varyantları genelinde sınıfları, metotları, arayüzleri ve tür takma adlarını çıkarır. Üye önekleri normalize edilir, ancak sınıf adıyla nitelenmiş tanımlayıcılar korunur; bu, bir repoda hem çıplak bir yardımcı adı hem de aynı son bölüme sahip sınıf kapsamlı bir metot olduğunda yardımcı olur.

JSX, başıboş biçimlendirme yerine gerçek bir yapısal sinyal olarak ele alınır. Dizinlenmiş TypeScript dosyalarında testler, story'ler ve yapılandırma, uygulama koduyla birlikte erişilebilir kalır; böylece ajan, paylaşılan bir bileşeni veya servisi değiştirmeden önce kullanım örneklerini ve ayarları inceleyebilir.

## TypeScript repoları için yararlı MCP iş akışları

Üç başlangıç deseni genellikle yeterlidir:

- Arayüz, tür takma adı, hook veya servis adını zaten bildiğinizde `find_symbol`'ü kullanın.
- Paketler arasında yayılabilecek paylaşılan türleri veya istemcileri değiştirmeden önce `dependency_search`'ü kullanın.
- Bir anahtar kelime eşleşmesi değil, bir kod biçimi gerektiğinde, örneğin tekrarlanan bileşen veya metot desenleri için `structural_search`'i kullanın.

"Ödeme gönderim yolunu izle" gibi kavramsal sorular için `get_task_context`, genellikle ham bir aramadan daha iyi bir ilk adımdır.

## Bu sayfa nerede en ilgili

Bu sayfa, TypeScript'in birden fazla paket için koordinasyon katmanı olduğu web ve platform monorepo'ları için en güçlüdür. Reponuz hâlâ çok sayıda eski JS içeriyorsa, [JavaScript kılavuzunu](/tr/languages/javascript) okuyun. Sorunuz gerçekten "ajan uygulama kodu ve altyapı bağlamını bir arada tutabilir mi?" ise, bunu [Terraform](/tr/languages/terraform) ile eşleştirin.

## Motor ayrıntıları

- TypeScript, her şeyi genel sembollere düzleştirmek yerine sınıfları, metodları, arayüzleri ve type alias'larını çıkarır.
- Üye önekleri kaldırılır, ancak sınıf adıyla nitelenmiş tanımlayıcılar korunur; bu, `CheckoutService.create`'i çıplak bir `create`'ten ayırt etmeye yardımcı olur.
- JSX öğeleri örnek oluşturma olarak değerlendirilir. Dizinlenmiş TypeScript dosyalarında testler, story'ler ve yapılandırma, uygulama kodunun yanında bağlam olarak erişilebilir kalır.

## Yararlı MCP giriş noktaları

- `find_symbol`: İncelemek istediğiniz paylaşılan arayüzü, type alias'ını, hook'u ya da servisi bildiğinizde buradan başlayın.
- `dependency_search`: Paylaşılan bir DTO ya da client'ı değiştirmeden önce, paketler genelinde gerçekçi bir etki yarıçapı elde etmek için kullanın.
- `structural_search`: Bir dize eşleşmesi değil bir kalıba ihtiyacınız olduğunda AST düzeyinde arama kullanın; örneğin tekrarlanan bileşen ya da metod şekilleri.
