首页 > 解决方案 > 如何键入将蛇案例格式化为骆驼案例的函数?

问题描述

type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}`
  ? `${Lowercase<T>}${Capitalize<SnakeToCamelCase<U>>}`
  : S;

const snakeToCamelCase = <T extends string>(subject: T): SnakeToCamelCase<T> => {
  return subject.replace(/([_-][a-z])/gi, (segment) => {
    return segment.toUpperCase().replace('-', '').replace('_', '');
  });
};

照原样,上面的代码会产生错误:

Type 'string' is not assignable to type 'SnakeToCamelCase<T>'.

https://tsplay.dev/w2KAVN

snakeToCamelCase输入函数的正确方法是什么?

标签: typescript

解决方案


推荐阅读