2025-06-03
Rust struct ile TypeScript interface Arasındaki Fark Nedir?
Rust struct'ları ve TypeScript interface'leri her ikisi de veri şekillerini tanımlar, ancak çok farklı çalışırlar. İşte bilmeniz gerekenler.
Yüzeysel Benzerlik
Hem Rust'taki struct hem de TypeScript'teki interface verilerinizin şeklini tanımlar:
TypeScript:
export interface User {
id: number;
name: string;
}
Rust:
#[derive(Debug, Serialize, Deserialize)]
pub struct User {
pub id: i64,
pub name: String,
}
Benzer görünürler, ancak çıkarımları derinden farklıdır.
Bellek ve Sahiplik
TypeScript interface'i bir derleme zamanı kurgusudur — çalışma zamanında ortadan kalkar. Altta yatan JavaScript nesnesi, sahiplik semantiği olmadan heap üzerinde tahsis edilir.
Rust struct'ı ise somut bir bellek düzenidir. Derleyici, derleme zamanında tam bayt boyutunu bilir. Stack üzerinde tahsis edilen struct'lar mümkün ve yaygındır.
Null Olabilirlik
TypeScript | null veya isteğe bağlı alanlar (?:) kullanır. Rust Option<T> kullanır. Her ikisi de olmayan durumu ele almanızı zorlar, ancak Rust'ın Option üzerindeki match'i kapsamlıdır — derleyici bunu görmezden gelmenize izin vermez.
Ne Zaman Hangisini Kullanmalı?
| Senaryo | Tercih |
|---|---|
| Frontend web uygulaması | TypeScript interface |
| Yüksek performanslı API | Rust struct |
| Mikroservis | Go struct |
| .NET ekosistemi | C# record/class |
Doğru araç, veri şeklinize değil çalışma zamanınıza bağlıdır.