Type Alias CamelCase<Type, Options>

CamelCase: Type extends string
    ? string extends Type
        ? Type
        : Uncapitalize<
            CamelCaseFromArray<
                SplitWords<Type extends Uppercase<Type> ? Lowercase<Type> : Type>,
                Options,
            >,
        >
    : Type

Convert a string literal to camel-case.

This can be useful when, for example, converting some kebab-cased command-line flags or a snake-cased database result.

By default, consecutive uppercase letter are preserved. See preserveConsecutiveUppercase option to change this behaviour.

Type Parameters

  • Type
  • Options extends CamelCaseOptions = { preserveConsecutiveUppercase: true }
import type {CamelCase} from 'type-fest';

// Simple

const someVariable: CamelCase<'foo-bar'> = 'fooBar';

// Advanced

type CamelCasedProperties<T> = {
[K in keyof T as CamelCase<K>]: T[K]
};

interface RawOptions {
'dry-run': boolean;
'full_family_name': string;
foo: number;
BAR: string;
QUZ_QUX: number;
'OTHER-FIELD': boolean;
}

const dbResult: CamelCasedProperties<RawOptions> = {
dryRun: true,
fullFamilyName: 'bar.js',
foo: 123,
bar: 'foo',
quzQux: 6,
otherField: false
};