JavaScript vs TypeScript: Bir Geliştirici Rehberi

JavaScript web'i çalıştırır. Node.js aracılığıyla arayüzlerinize ve sunucularınıza güç verir. Ancak kodunuz büyüdükçe yönetmesi zorlaşır. Hatalar genellikle uygulamanız çalışırken meydana gelir.

TypeScript bunu çözer. TypeScript, JavaScript'e tipler (types) ekleyen bir sürümdür. Bu, kodunuzu çalıştırmadan önce hataları yakalamanıza yardımcı olur.

Neden TypeScript kullanmalısınız?

• Statik Tiplendirme: Verinin nasıl görüneceğini tanımlarsınız. Bu, birçok hatayı engeller. • Daha İyi Araçlar: Editörünüz size daha iyi otomatik tamamlama ve navigasyon sağlar. • Okunabilirlik: Arayüzler (interfaces), kodunuzun okunmasını ve anlaşılmasını kolaylaştırır. • Uyumluluk: TypeScript, her türlü ortam için temiz bir JavaScript'e dönüşür.

Şu kod örneğine göz atın:

function getStringLength(input: string): number {
    return input.length;
}

const myString: string = "Hello";
const length: number = getStringLength(myString);

JavaScript'te, bu fonksiyona bir sayı gönderip uygulamanızın çökmesine neden olabilirsiniz. TypeScript'te ise editör hatayı size anında söyler.

Temel Farklar:

• JavaScript dinamik tiplendirme kullanır. Bu, çalışma zamanı (runtime) hatalarına neden olur. • TypeScript statik tiplendirme kullanır. Bu, hataları geliştirme aşamasında yakalar. • JavaScript, çalışma sırasında hata ayıklamaya (debugging) dayanır. • TypeScript, siz yazarken hataları bulmak için araçlar kullanır.

Verilerinizi yapılandırmak için arayüzler (interfaces) kullanmalısınız. İşte bir örnek:

interface User {
    id: number;
    name: string;
    email?: string;
}

const user1: User = {
    id: 1,
    name: "Jane Doe"
};

Bu yapı, verilerinizi düzenli ve öngörülebilir tutar.

Büyük projelerde çalışıyorsanız TypeScript kullanmaya başlayın. Her şeyi bir anda değiştirmenize gerek yok. Dosyaları tek tek dönüştürün. Bu, kodunuzun yönetimini kolaylaştırır ve hatalara karşı daha dirençli hale getirir.

Kaynak: https://dev.to/gautammanak1/understanding-javascript-and-typescript-a-developers-guide-5gef