TypeScript-Beispiel
snake_case in TypeScript zu camelCase konvertieren
Ein typisierter Helper kann underscore-getrennte Tokens verarbeiten und einen vorhersehbaren camelCase-String zurückgeben.
TypeScript-Code
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"Eine string→string-Signatur lässt sich gut in Utilities, Adaptern und Mapping-Code wiederverwenden.
Type-Level-Remapping und Runtime-Datenkonvertierung sind getrennte Ebenen; Netzwerkdaten müssen wirklich transformiert werden.
Zu beachtende Grenzfälle
- Akronymregeln können apiResponseURL statt apiResponseUrl verlangen.
- Bei rekursiven Object Keys muss festgelegt werden, wie weit TypeScript-Typen die Runtime-Form abbilden.
- Gemischte Separatoren erfordern eine allgemeinere Tokenisierung.
- Zwei Quellschlüssel können denselben Zielschlüssel erzeugen und dürfen nicht still überschrieben werden.
Beispiel
| Vorher | Nachher |
|---|---|
| user_profile_image | userProfileImage |
| __user__profile__ | userProfile |
| api_response_url | apiResponseUrl |
| created_at | createdAt |
TypeScript-Code
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)
}Konvertierung online testen
Nutze den Browser-Converter für schnelle Tests, Batch-Werte, Akronyme und gemischte Namensformate.
Erkannt: snake_case
camelCase-Ausgabe
userProfileImageUrl
Alle Namensformate
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/urlDie Konvertierung findet lokal in deinem Browser statt. Die Eingabe wird nicht an einen Conversion-Server gesendet.