Salvo

WFN Üye
Konular
1,759
Mesajlar
1,781
Çözüm
0
Ticaret Puanı
0
Üyelik
6 Ay 17 Gün
Konum
İstanbul
Web Sitesi
Yok
Alanı
Belirtmemiş
1/1
Konu sahibi
npm paketinin yüklenmesi, TypeScript’in o pakete ait tür bildirimlerini mutlaka bulacağı anlamına gelmez. Paket bildirim içermeyebilir, ayrı bir @types paketi gerektirebilir veya bildirimler projenin modül çözümleme ayarlarıyla bulunamıyor olabilir. Önce paketin doğru projede kurulu olduğunu ve bildirimin nerede sağlandığını kontrol edin; ardından kullanılan TypeScript yapılandırmasını ve çözümleme izini inceleyin.

Paketi ve tür bildirimini ayrı ayrı kontrol edin​


Terminali hatayı veren uygulamanın package.json dosyasının bulunduğu dizinde açın. Aşağıdaki örnekte paket-adi yerine import satırındaki gerçek paket adını yazın:

Kod:
npm ls paket-adi
npx tsc --version

İlk komutta paket görünmüyorsa doğru çalışma alanında olup olmadığınızı kontrol edin ve gerekirse o uygulamaya npm install paket-adi ile yükleyin. Çoklu çalışma alanlarında paketin başka bir uygulamada kurulu olması, hatayı veren uygulamanın bağımlılığı olduğu anlamına gelmez. Paket görünüyorsa bu, türlerinin de erişilebilir olduğunu henüz kanıtlamaz.

Paketin belgelerine ve kurulu paketindeki package.json dosyasına bakın. types veya typings alanı bir bildirim dosyasını gösterebilir; modern paketlerde exports içindeki tür koşulları da kullanılıyor olabilir. Bu alanların yokluğu tek başına tür bulunmadığını kanıtlamaz: TypeScript başka uygun bildirim dosyalarını da arayabilir.

Paket kendi türlerini sağlamıyorsa, uygun bir topluluk bildirimi olup olmadığını ve sürüm uyumunu kontrol edin. Örneğin varsayımsal ornek-paket için gerçekten yayımlanmış ve kullandığınız sürüme uygun @types/ornek-paket varsa uygulama dizininde şunu çalıştırın:

Kod:
npm install -D @types/ornek-paket

Bu komut JavaScript paketinin yerine geçmez; bildirimleri geliştirme bağımlılığı olarak ekler. Kapsamlı paketlerde adlandırma farklı olabilir: örneğin @kurum/arac için bildirimin adı @types/kurum__arac biçiminde olabilir. Her paket için böyle bir bildirimin bulunduğunu varsaymayın.

Hata mesajına göre çözümlemeyi inceleyin​


Aynı belirti farklı nedenlere işaret edebilir:
Görülen durumİlk kontrol
Modül veya ilgili tür bildirimleri bulunamıyorPaket adı, kurulum yeri ve import yolu
Modül bulunuyor, bildirim dosyası bulunamıyorPaketin kendi türleri veya uygun @types paketi
Paketin belirli bir alt yolu bulunamıyorPaketin exports alanı ve desteklenen import yolları
Bildirim dosyasında sözdizimi veya uyumluluk hatasıTypeScript ve paket sürümlerinin uyumu
Tablodaki mesajlar başlangıç noktasıdır; kesin nedeni görmek için derleyiciyi uygulamanın kullandığı yapılandırmayla çalıştırın. Örnekte tsconfig.json yerine gerekirse ilgili uygulamanın yapılandırma yolunu yazın:

Kod:
npx tsc -p tsconfig.json --showConfig
npx tsc -p tsconfig.json --noEmit --traceResolution

İlk komut devralınanlar dâhil etkin ayarları gösterir. İkinci komut dosya üretmeden tür denetimi yapar ve modülün hangi yollarda arandığını gösterir. Çıktıda paket adını arayın: Aranan bildirim dosyası yoksa kurulum ve paket içeriğine; dosya bulunmasına rağmen hata sürüyorsa bildirimin uyumluluğuna ve hata mesajının ayrıntısına dönün. Çözümleme izinde yerel dosya yolları bulunabilir; paylaşmadan önce kullanıcı adlarını ve proje yollarındaki hassas bilgileri temizleyin. Tanılama çıktısını dosyaya kaydettiyseniz işiniz bitince silin.

TypeScript ayarlarını çalışma ortamıyla eşleştirin​


moduleResolution, TypeScript’in import edilen modülleri nasıl arayacağını belirler. Modern Node.js için nodenext gibi Node uyumlu bir mod; kodu bir paketleyici işliyorsa bundler uygun olabilir. module ayarı da seçilen modla uyumlu olmalıdır. Örneğin Node.js hedefleyen bir projede module: nodenext, paketleyici kullanan bir projede ise module: esnext ile moduleResolution: bundler bir başlangıç seçeneğidir. Mevcut ayarı yalnızca hatayı susturmak için değiştirmeyin: çalışma zamanı, modül biçimi ve diğer importlar da etkilenebilir.

Paketin exports alanı varsa, iç dosyaya ait bir yol diskte bulunsa bile dışarıya açılmamış olabilir. Bu durumda paket belgelerinde desteklenen kök veya alt yol importunu kullanın; dosyaya doğrudan erişmeye çalışmak kalıcı bir çözüm değildir.

types ve typeRoots ayarları özellikle otomatik eklenen genel türleri etkileyebilir. Örneğin Node.js genel türleri eksikse @types/node kurulumunu ve etkin types listesini kontrol edin. Özel typeRoots kullanıyorsanız gerekli tür klasörünün bu ayarda yer aldığından emin olun. types listesinden bir paketin çıkarılması, açık bir import üzerinden çözümlenen türleri her durumda engellemez.

Düzeltmeyi doğrulayın​


Değişiklikleri kaydedip aynı npx tsc -p tsconfig.json --noEmit komutunu yeniden çalıştırın. İlgili hata kaybolduysa tür bildirimi artık derleyici tarafından kullanılabiliyor demektir; bu tek başına paketin çalışma zamanında doğru çalıştığını garanti etmez. Komut başarılı ama editör hâlâ hata gösteriyorsa editörün aynı projeyi ve TypeScript sürümünü kullandığını kontrol edip TypeScript dil hizmetini yeniden başlatın.

Sorun sürüyorsa tam hata mesajını, import satırını, paket ve TypeScript sürümlerini, ilgili tsconfig ayarlarını ve temizlenmiş çözümleme izini birlikte inceleyin. Paket kendi bildirimini hatalı yayımlıyorsa bu bilgilerle paket bakımcısına, kullanılan import yolu için bildirimlerin düzeltilmesini isteyebilirsiniz.

Sık sorulan sorular​

Hiç tür bildirimi yoksa ne yapabilirim?​

Paketin kullandığınız API’si için projede bir .d.ts bildirim dosyası yazabilirsiniz. Örneğin yalnızca declare module 'ornek-paket'; yazmak hatayı geçici olarak bastırabilir, ancak modülü any olarak ele alır ve tür güvenliği sağlamaz. Daha güvenli çözüm, kullandığınız dışa aktarımların gerçek imzalarını tanımlamaktır.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic