Czczay.devv3.5.1
  • anasayfa
  • hakkımda
  • projeler
  • blog
  • eğitimler
  • iletişim
Mesaj

Furkan Özay.

Fullstack Developer & Eğitmen

  • İstanbul, Türkiye
  • contact@czay.dev

Keşfet

  • anasayfa
  • hakkımda
  • projeler
  • blog
  • eğitimler
  • iletişim

Kaynaklar

  • Liderlik tablosu
  • Site haritası
  • Çerez politikası
  • Geri bildirim

Bağlan

Mesaj gönder

© 2026 Furkan Özay — Tüm hakları saklıdır.

Next.js · Tailwind · oklch ile yapıldı

Blog/Typescript ile Tip Güvenli Geliştirme
YazıTypeScriptJavaScriptWeb Development

Typescript ile Tip Güvenli Geliştirme

TypeScript'in sunduğu tip güvenliği avantajlarını ve best practice'leri öğrenin.

Furkan Özay

Furkan Özay

Fullstack & Eğitmen

10 Haziran 20253 dk
AI ile özetle
ChatGPTClaude
İçindekiler (7)

İçindekiler

  • TypeScript Neden Önemli?
  • Temel Tipler
  • Generic Tipler
  • Utility Tipler
  • Best Practices
  • React ile TypeScript
  • Sonuç
📝🎯 Bu Yazıda Neler Öğreneceksiniz?

TypeScript, JavaScript geliştirme süreçlerinde güvenlik ve verimlilik sağlayan güçlü bir araçtır. Bu yazıda, TypeScript'in temel özelliklerini ve best practice'leri ele alacağız.

TypeScript Neden Önemli?

💡🚀 TypeScript'in Gücü

Modern web geliştirmede TypeScript kullanmanın başlıca sebepleri şunlardır:

  • Compile-time hata yakalama - Çalışma zamanı hatalarını önleme
  • Daha iyi IDE desteği - IntelliSense ve otomatik tamamlama
  • Kod okunabilirliği - Tip tanımları ile daha anlaşılır kod
  • Refactoring kolaylığı - Güvenli kod değişiklikleri

Temel Tipler

🧪Temel Tip Tanımlamaları
typescript
// Primitive tipler
let isActive: boolean = true;
let count: number = 42;
let message: string = "Merhaba";
 
// Array tipler
let numbers: number[] = [1, 2, 3];
let names: Array<string> = ["Ali", "Veli"];
 
// Object tipler
interface User {
	id: number;
	name: string;
	email?: string; // Optional property
}
 
const user: User = {
	id: 1,
	name: "Furkan",
};
💡💡 Pro İpucu

Optional properties (?) kullanarak esnek interface'ler oluşturabilirsiniz. Bu, API'lerden gelen verileri tip güvenli şekilde handle etmenizi sağlar.

Generic Tipler

🧪Generic Fonksiyon ve Sınıf
typescript
// Generic function
function identity<T>(arg: T): T {
	return arg;
}
 
// Generic interface
interface Repository<T> {
	findById(id: number): T | null;
	save(entity: T): T;
	delete(id: number): boolean;
}
 
// Generic class
class DataStore<T> {
	private items: T[] = [];
 
	add(item: T): void {
		this.items.push(item);
	}
 
	getAll(): T[] {
		return this.items;
	}
}

Utility Tipler

🧪Sık Kullanılan Utility Tipler
typescript
interface User {
	id: number;
	name: string;
	email: string;
	age: number;
}
 
// Partial - tüm property'leri optional yapar
type PartialUser = Partial<User>;
 
// Pick - belirli property'leri seçer
type UserBasicInfo = Pick<User, "id" | "name">;
 
// Omit - belirli property'leri çıkarır
type UserWithoutId = Omit<User, "id">;
 
// Required - tüm property'leri zorunlu yapar
type RequiredUser = Required<PartialUser>;

Best Practices

❗Strict Mode Kullanın
JSON
// tsconfig.json
{
	"compilerOptions": {
		"strict": true,
		"noImplicitAny": true,
		"strictNullChecks": true
	}
}
📖Interface vs Type
typescript
// Interface - extending için uygun
interface Animal {
	name: string;
}
 
interface Dog extends Animal {
	breed: string;
}
 
// Type - union/intersection için uygun
type Status = "loading" | "success" | "error";
type ApiResponse<T> = {
	data: T;
	status: Status;
};
💬Enum Kullanımı
typescript
// Const enum daha performanslı
const enum HttpStatus {
	OK = 200,
	NOT_FOUND = 404,
	INTERNAL_ERROR = 500,
}
 
// String enum daha okunabilir
enum LogLevel {
	DEBUG = "debug",
	INFO = "info",
	WARN = "warn",
	ERROR = "error",
}

React ile TypeScript

🧪React ile TypeScript Kullanımı
typescript
// Component props typing
interface ButtonProps {
	children: React.ReactNode;
	onClick: () => void;
	variant?: "primary" | "secondary";
	disabled?: boolean;
}
 
const Button: React.FC<ButtonProps> = ({
	children,
	onClick,
	variant = "primary",
	disabled = false,
}) => {
	return (
		<button
			onClick={onClick}
			disabled={disabled}
			className={`btn btn-${variant}`}
		>
			{children}
		</button>
	);
};
 
// Hook typing
const useCounter = (initialValue: number = 0) => {
	const [count, setCount] = useState<number>(initialValue);
 
	const increment = useCallback(() => {
		setCount((prev) => prev + 1);
	}, []);
 
	const decrement = useCallback(() => {
		setCount((prev) => prev - 1);
	}, []);
 
	return { count, increment, decrement };
};

Sonuç

📋Özet

TypeScript, JavaScript geliştirmede güvenlik ve verimlilik sağlayan vazgeçilmez bir araçtır. Doğru kullanıldığında:

  • Hataları erken yakalar
  • Kod kalitesini artırır
  • Team çalışmalarını kolaylaştırır
  • Maintenance süreçlerini iyileştirir

TypeScript'i projelerinizde kullanmaya başlayın ve farkı kendiniz deneyimleyin!

İçindekiler

İçindekiler

  • TypeScript Neden Önemli?
  • Temel Tipler
  • Generic Tipler
  • Utility Tipler
  • Best Practices
  • React ile TypeScript
  • Sonuç

Yazı süresi

3 dk

Bu içeriği beğendiysen

Yeni yazı çıktığında haberin olsun. Spam yok.

Bu yazıyı faydalı bulduysan paylaşabilirsin.

X'te PaylaşLinkedIn
Furkan Özay

Furkan Özay

Fullstack Developer & Eğitmen

Modern web teknolojileriyle ürünler inşa eder, öğrencilere yazılım öğretir. React, Next.js ve Node.js ekosisteminde uzman.

HakkımdaEğitimlerİletişim

Yorumlar

Yorum yapmak için GitHub hesabınla giriş yapman yeterli. Tartışmalar GitHub Discussions'ta tutulur.

Benzer yazılar

Aynı etiketleri paylaşan içerikler

Tümü
  • JavaScriptÖğrenme

    JavaScript Öğrenmek İçin En İyi Siteler ve Net Yol Haritası

    30 Mar 20265 dk
  • Next.jsForm Validation

    Next.js Form Validasyon Yöntemleri: Client ve Server Side Doğrulama Rehberi

    1 Tem 202512 dk
  • Next.jsMDX

    Next.js App Router ile MDX Kullanımı: Adım Adım TypeScript Rehberi

    29 Haz 20254 dk
Önceki yazıWeb Geliştirici Rehberi23 Kas 2024Sonraki yazıTurborepo ile Monorepo Yönetimi12 Haz 2025