Ejemplo de TypeScript

Convertir snake_case a camelCase en TypeScript

Un helper tipado puede procesar tokens separados por underscores y devolver una cadena camelCase predecible.

Por Equipo editorial de Camel Case ConverterPublicado 12 sept 2026Última revisión

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"

Una firma string→string es fácil de reutilizar en utilidades, adapters y código de mapping tipado.

El remapeo de tipos y la transformación runtime son capas distintas; los datos de red deben transformarse realmente.

Casos límite a tener en cuenta

  • Las reglas de acrónimos pueden requerir apiResponseURL en lugar de apiResponseUrl.
  • En claves recursivas hay que decidir hasta qué punto los tipos TypeScript reflejan el resultado runtime.
  • Los separadores mixtos necesitan tokenización más general.
  • Dos claves fuente pueden producir la misma clave de salida y no deben sobrescribirse en silencio.

Ejemplo

AntesDespués
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)
}

Probar la conversión online

Usa el convertidor para comprobaciones rápidas, lotes, acrónimos o entradas con varias convenciones.

Detectado: snake_case
Salida camelCase
userProfileImageUrl

Todos los formatos de nombres

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

La conversión ocurre localmente en tu navegador. Tu entrada no se envía a un servidor de conversión.