- GitHub - gvergnaud/hotscript: A library of composable functions for the type-level! Transform your TypeScript types in any way you want using functions you already know.
- A library of composable functions for the type-level! Transform your TypeScript types in any way you want using functions you already know. - gvergnaud/hotscript
AI tarafından çevrilmiş metin.
durumis AI tarafından özetlenen yazı
- TypeScript'te tip tanımlarını elle yazmak okunabilirliği düşürebilir ve yüksek mertebeli tipler kullanarak daha temiz bir şekilde tanımlanabilir.
- hotscript kütüphanesini kullanarak yüksek mertebeli tiplere dayalı tip tanımlarını özlü bir şekilde yönetebilirsiniz.
- Çeşitli işlevler sunan hotscript kütüphanesini kullanarak kod okunabilirliğini artırmanızı ve gerektiğinde kullanmanızı öneririz.
Bir örnek kod alalım.
Her kelimenin ilk harfini büyük harfe dönüştüren bir kod.
const firstLetterUpperCase = (str : string) => { return str.split(" ").map(v => ${v.charAt(0).toUpperCase()}${v.slice(1)}).join(" "); } console.log(firstLetterUpperCase("hello world"));
Basit olsa da, bu şekilde return türü string olur ve tür çıkarımı mümkün olmaz.
type FirstLetterUppercase = T extends ${infer R}${infer RestWord} ${infer RestSentence} ? ${Uppercase<R>}${RestWord} ${FirstLetterUppercase<RestSentence>} : T extends ${infer R}${infer RestWord} ? ${Uppercase<R>}${RestWord} : never; const firstLetterUpperCase= (str : T) : FirstLetterUppercase => { return str.split(" ").map(v => ${v.charAt(0).toUpperCase()}${v.slice(1)}).join(" ") as FirstLetterUppercase ; } console.log(firstLetterUpperCase("hello world"));
Elbette, yukarıdaki gibi türleri tek tek yazıp yapabiliriz.
Ancak yukarıdaki tür okunabilirlik açısından iyi değil. İç içe geçmiş üçlü operatörler ve özyinelemeli yapı sorun olabilir.
Ancak şaşırtıcı bir şekilde TypeScript yüksek mertebeden türleri destekler.
Ve bu yüksek mertebeden türlere dayalı olarak, yüksek mertebeden tür kitaplıklarından biri vardır.
Bu kitaplığı kullanarak tür tanımlarını temiz bir şekilde düzenleyebiliriz.
type FirstLetterUppercase2= Pipe< T, [ Strings.Split<" ">, Tuples.Map<Strings.Capitalize>, Tuples.Join<" "> ] >; type A = FirstLetterUppercase2<"hello world">; // ^? type = "Hello World"
Bahsi geçen kodburada.
Bu şekilde, yüksek mertebeden türler aracılığıyla tür düzenlemelerini okunabilir bir şekilde yapabiliyoruz.
Bunun dışında çeşitli özellikler de var, bu nedenle siteye girip bir göz atmanız ve gerektiğinde kullanmanız iyi olur.