Mövzunu Açan
#0
Mapped types, TypeScript'in sağladığı güçlü bir özellik olarak, mevcut bir türü temel alarak yeni türler oluşturmayı sağlar. Bu özellik, özellikle büyük ve karmaşık uygulamalarda, türlerin yeniden kullanılabilirliğini artırmak ve kodun daha okunabilir olmasını sağlamak için oldukça faydalıdır. Mapped types kullanarak, bir türü belirli bir biçimde dönüştürebilir ya da özelleştirebilirsiniz.
Örneğin, bir nesne türünüz olduğunu varsayalım:
Bu türü kullanarak, tüm özelliklerin
Burada
Mapped types ayrıca, türlerin belirli bir kısmını değiştirmek için de kullanılabilir. Örneğin, tüm
Bu örneklerde görüldüğü gibi, mapped types, TypeScript ile daha esnek ve güçlü tür tanımlamaları yapmanızı sağlar. Kullanım alanları oldukça geniştir; örneğin, API yanıtlarını dönüştürmek, form verilerini yönetmek veya bileşenlerin props türlerini dinamik olarak oluşturmak için ideal bir çözümdür. Mapped types ile ilgili deneyimlerinizi ve bu özelliği nasıl kullandığınızı paylaşabilirsiniz.
Örneğin, bir nesne türünüz olduğunu varsayalım:
CODE
123456
type User = {
id: number;
name: string;
email: string;
};
Bu türü kullanarak, tüm özelliklerin
readonly olduğu yeni bir tür oluşturmak için mapped types kullanabilirsiniz:CODE
1234
type ReadonlyUser = {
readonly [K in keyof User]: User[K];
};
Burada
[K in keyof User] ifadesi, User türündeki her bir anahtar için bir döngü oluşturur ve her birini readonly olarak işaretler. Sonuçta, ReadonlyUser türü, User türünün tüm özelliklerini readonly hale getirir. Böylece, ReadonlyUser nesnesinin özellikleri dışarıdan değiştirilemez.Mapped types ayrıca, türlerin belirli bir kısmını değiştirmek için de kullanılabilir. Örneğin, tüm
string türündeki özellikleri number türüne dönüştürebilirsiniz:CODE
123456
type StringToNumber = {
[K in keyof T]: T[K] extends string ? number : T[K];
};
type UserWithNumbers = StringToNumber;
Bu örneklerde görüldüğü gibi, mapped types, TypeScript ile daha esnek ve güçlü tür tanımlamaları yapmanızı sağlar. Kullanım alanları oldukça geniştir; örneğin, API yanıtlarını dönüştürmek, form verilerini yönetmek veya bileşenlerin props türlerini dinamik olarak oluşturmak için ideal bir çözümdür. Mapped types ile ilgili deneyimlerinizi ve bu özelliği nasıl kullandığınızı paylaşabilirsiniz.