"Cannot find name 'xxx'" hatası nedir?
Örneğin:
let mesaj: string = "Merhaba Dünya!";
console.log(mesaj);
console.log(mesaj2); // Bu satırda hata alırsınız!
Yukarıdaki kodda, `mesaj2` adında bir değişkeni tanımlamadık, bu nedenle TypeScript "Cannot find name 'mesaj2'" hatası verir.
Hata ile karşılaştığınızda ne yapmalısınız?
Bu hatanın en yaygın nedeni, bir değişkenin adını yanlış yazmaktır. Küçük bir harf hatası bile bu hatayı almanıza neden olabilir. Örneğin, `mesaj2` yerine `mesaj` yazmanız gerekebilir. Hata mesajını dikkatlice kontrol ederek yazım hatalarını düzeltin.
2. Değişken veya Fonksiyonu Tanımlayın
Eğer gerçekten bir değişkeni veya fonksiyonu tanımlamışsanız ama yine de hata alıyorsanız, bu değişkeni doğru bir şekilde tanımladığınızdan emin olun. TypeScript, tanımlanmamış değişkenleri tanımadığı için hata verir.
Aşağıdaki gibi basit bir hata yapmış olabilirsiniz:
let sayi: number;
console.log(sayi);
Burada `sayi` değişkeni tanımlandı, fakat değeri atanmadı. TypeScript buna izin vermez, çünkü değişken kullanmadan önce bir değer almalıdır.
3. Modül veya Bağımlılıkları Kontrol Edin
Eğer dış kütüphaneler veya modüller kullanıyorsanız, ilgili modülün doğru şekilde import edildiğinden emin olun. Örneğin, bir modülden fonksiyon veya sınıf çağırırken, onu doğru şekilde import ettiğinizden emin olmalısınız.
import { fetchData } from './data-fetcher'; // Burayı kontrol edin
fetchData(); // Hata alıyorsanız, fetchData doğru import edilmiş mi?
4. Global Değişkenler ve TypeScript Ayarları
Eğer global bir değişken kullanıyorsanız ve TypeScript bunu tanımıyorsa, `tsconfig.json` dosyanızdaki ayarları kontrol etmeniz gerekebilir. Global değişkenlerin doğru bir şekilde tanımlanıp tanımlanmadığına göz atın.
Eğer global bir değişken kullanıyorsanız, aşağıdaki gibi global tip bildirimi yapmanız gerekebilir:
declare var globalVariable: string;
İpucu: Tip Tanımları Kullanarak Sorunu Önleyin
Örneğin:
function selamla(isim: string): string {
return `Merhaba, ${isim}!`;
}
console.log(selamla("Ahmet"));
Bu şekilde yazdığınızda, TypeScript "Cannot find name" hatası vermeyecektir çünkü her şey doğru bir şekilde tanımlanmıştır.
Sonuç
Eğer bu hatayı bir kez çözdüyseniz, gelecekte karşılaştığınızda ne yapmanız gerektiğini kolayca bileceksiniz!