Type Alias DelimiterCase<Value, Delimiter>

DelimiterCase: string extends Value
    ? Value
    : Value extends string
        ? StringArrayToDelimiterCase<
            SplitIncludingDelimiters<Value, WordSeparators | UpperCaseCharacters>,
            true,
            WordSeparators,
            UpperCaseCharacters,
            Delimiter,
        >
        : Value

Convert a string literal to a custom string delimiter casing.

This can be useful when, for example, converting a camel-cased object property to an oddly cased one.

Type Parameters

  • Value
  • Delimiter extends string
  • KebabCase
  • SnakeCase
import type {DelimiterCase} from 'type-fest';

// Simple

const someVariable: DelimiterCase<'fooBar', '#'> = 'foo#bar';

// Advanced

type OddlyCasedProperties<T> = {
[K in keyof T as DelimiterCase<K, '#'>]: T[K]
};

interface SomeOptions {
dryRun: boolean;
includeFile: string;
foo: number;
}

const rawCliOptions: OddlyCasedProperties<SomeOptions> = {
'dry#run': true,
'include#file': 'bar.js',
foo: 123
};