1. "Cannot find name" Hatası: Adını Duymazsanız Ne Olur?
Bu hatayı her geliştirici en az bir kez görmüştür. TypeScript’in doğru çalışabilmesi için yazdığınız her şeyin tipini belirlemeniz gerekir. Ancak bazen, modül veya değişken isimlerini yanlış yazabilir veya tanımlamadan kullanabilirsiniz. Bu da size “Cannot find name” hatasını getirir.
import { calculateSum } from './mathUtils';
const result = calculateSum(5, 10);
2. Tip Anlamını Yanlış Anlamak: "Any" Tipi Sıkça Kullanmak
TypeScript, güçlü bir tip sistemine sahiptir. Ancak bazen, geliştiriciler kolayca çalışabilmek için her şeyin tipini `any` olarak ayarlayabilirler. Bu, aslında TypeScript’in sunduğu tip güvenliğinden tam anlamıyla faydalanmadığınız anlamına gelir.
let userInfo: unknown; // any yerine
userInfo = { name: "Ali", age: 30 };
3. "Type 'X' is not assignable to type 'Y'" Hatası: Tip Uyumsuzluğu
TypeScript’te en yaygın hata mesajlarından birisi, bir türün diğerine atanamamasıyla ilgili olanıdır. Bu hatayı, özellikle nesneleri ya da dizileri yanlış şekilde birbirine atamaya çalıştığınızda alırsınız. Ancak çözüm oldukça basittir.
interface User {
name: string;
age: number;
}
const user: User = { name: "Ahmet", age: 25 };
const newUser = { name: "Mehmet", age: "25" }; // Hata!
4. Yanlış TypeScript Yapılandırması: tsconfig.json
Bazı geliştiriciler, `tsconfig.json` dosyasını doğru yapılandırmamayı gözden kaçırabiliyor. Bu da projeyi çalıştırmak ya da doğru şekilde derlemekle ilgili problemler yaratabilir.
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true
}
}
5. TypeScript’in Esnekliklerini Anlamamak: Union Types
TypeScript, bir değerin birden fazla türde olabilmesine olanak sağlar. Ancak bu esneklik bazen karmaşıklaşabilir. Özellikle, `union types` kullanırken hatalar sıkça ortaya çıkar.
let value: string | number;
value = "Merhaba";
value = 100; // İkisi de geçerli
6. Eternal Loops: Sonsuz Döngüler
Geliştiriciler, yanlış koşul ifadeleri ya da asenkron işlemlerle bazen sonsuz döngüler oluşturabilirler. Bu da uygulamanızın donmasına veya beklenmedik şekilde çalışmasına sebep olabilir.
let i = 0;
while (i < 10) {
console.log(i);
i++;
}
7. Dış Kütüphaneleri ve Tip Tanımları
TypeScript ile çalışırken, özellikle dış kütüphaneleri kullanmak bazen kafa karıştırıcı olabilir. Kütüphanelerin çoğu, tam tip tanımları sağlamaz, bu da geliştiricileri hatalara sürükleyebilir.
import * as _ from 'lodash'; // Tip tanım dosyasını yüklemeyi unutmayın!
### Sonuç
JavaScript ve TypeScript, her biri kendine özgü güçlü özellikler sunan iki önemli dil. Ancak her ikisi de geliştiricilerin karşılaştığı çeşitli zorluklarla birlikte gelir. Bu yazıda ele aldığımız hataları ve çözüm önerilerini göz önünde bulundurarak, TypeScript ile daha etkili ve sorunsuz bir şekilde çalışabilirsiniz. Unutmayın, her hata bir öğrenme fırsatıdır!