Exemple TypeScript
Convertir snake_case en camelCase en TypeScript
Un helper typé peut découper les tokens séparés par underscore et retourner une chaîne camelCase prévisible.
Code TypeScript
function snakeToCamel(value: string): string {
const parts = value.trim().replace(/^_+|_+$/g, "").split(/_+/).filter(Boolean)
if (parts.length === 0) return ""
return parts[0].toLowerCase() + parts.slice(1).map((part) => part.charAt(0).toUpperCase() + part.slice(1).toLowerCase()).join("")
}
snakeToCamel("user_profile_image")
// "userProfileImage"Une signature string → string se réutilise facilement dans les utilitaires, adapters et mappings typés.
Le remapping de types et la transformation runtime sont deux couches distinctes ; les données réseau doivent être réellement transformées.
Cas limites à considérer
- Les acronymes peuvent imposer apiResponseURL plutôt que apiResponseUrl.
- La conversion récursive demande de décider jusqu’où les types TypeScript reflètent le résultat runtime.
- Les séparateurs mixtes nécessitent une tokenisation plus large.
- Deux clés source peuvent produire la même clé et ne doivent pas être écrasées silencieusement.
Exemple
| Avant | Après |
|---|---|
| user_profile_image | userProfileImage |
| __user__profile__ | userProfile |
| api_response_url | apiResponseUrl |
| created_at | createdAt |
Code TypeScript
const cases: Array<[string, string]> = [
["user_profile_image", "userProfileImage"],
["__user__profile__", "userProfile"],
["api_response_url", "apiResponseUrl"],
["created_at", "createdAt"],
]
for (const [input, expected] of cases) {
if (snakeToCamel(input) !== expected) throw new Error(input)
}Tester la conversion en ligne
Utilisez le convertisseur pour les vérifications rapides, les lots, les acronymes ou les entrées qui mélangent plusieurs conventions.
Détecté : snake_case
Sortie camelCase
userProfileImageUrl
Tous les formats de nommage
camelCase
userProfileImageUrlPascalCase
UserProfileImageUrlsnake_case
user_profile_image_urlkebab-case
user-profile-image-urlCONSTANT_CASE
USER_PROFILE_IMAGE_URLdot.case
user.profile.image.urlpath/case
user/profile/image/urlLa conversion s’effectue localement dans votre navigateur. Votre entrée n’est pas envoyée à un serveur de conversion.