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.

Por Equipe editorial do Camel Case ConverterPublicado em 12 de set. de 2026Última revisão

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

AntesDepois
user_profile_imageuserProfileImage
__user__profile__userProfile
api_response_urlapiResponseUrl
created_atcreatedAt

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
userProfileImageUrl
PascalCase
UserProfileImageUrl
snake_case
user_profile_image_url
kebab-case
user-profile-image-url
CONSTANT_CASE
USER_PROFILE_IMAGE_URL
dot.case
user.profile.image.url
path/case
user/profile/image/url

A conversão acontece localmente no navegador. Sua entrada não é enviada a um servidor de conversão.