Exemplo em TypeScript
Converter snake_case para camelCase em TypeScript
Um helper tipado pode processar tokens separados por underscore e retornar uma string camelCase previsível.
Código 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"Uma assinatura string→string é fácil de reutilizar em utilities, adapters e mapeamentos tipados.
Remapeamento de tipos e transformação runtime são camadas distintas; dados de rede precisam ser transformados de verdade.
Casos extremos a considerar
- Regras de siglas podem exigir apiResponseURL em vez de apiResponseUrl.
- Em chaves recursivas, decida até onde os tipos TypeScript refletem o resultado runtime.
- Separadores mistos precisam de tokenização mais geral.
- Duas chaves de origem podem gerar a mesma chave e não devem sobrescrever valores silenciosamente.
Exemplo
| Antes | Depois |
|---|---|
| user_profile_image | userProfileImage |
| __user__profile__ | userProfile |
| api_response_url | apiResponseUrl |
| created_at | createdAt |
Código 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)
}Testar a conversão online
Use o conversor para verificações rápidas, lotes, siglas ou entradas com várias convenções.
Detectado: snake_case
Saída camelCase
userProfileImageUrl
Todos os formatos de nomenclatura
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/urlA conversão acontece localmente no navegador. Sua entrada não é enviada a um servidor de conversão.