From 0a7205cd607d5ec09b52931016bff46f80a6fe3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kimi=20L=C3=B6ffel?= Date: Sat, 11 Mar 2023 17:29:02 +0100 Subject: [PATCH] add snake-case --- snake-case | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 snake-case diff --git a/snake-case b/snake-case new file mode 100644 index 0000000..e6be0c0 --- /dev/null +++ b/snake-case @@ -0,0 +1,19 @@ +import type { Equal, Expect } from '@type-challenges/utils' + +type cases = [ + Expect, 'hello'>>, + Expect, 'user_name'>>, + Expect, 'get_element_by_id'>>, + Expect, 'get_element_by_id' | 'get_element_by_class_names'>>, +] + +type SnakeCase< + T extends string, + Acc extends string = '', +> = +T extends `${infer Head}${infer Tail}` + ? Head extends Lowercase + ? SnakeCase + : SnakeCase}`> + : Acc +; \ No newline at end of file