File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -30,5 +30,20 @@ camelize("foo-bar" as const);
3030// $ExpectType Date
3131camelize ( new Date ( ) ) ;
3232
33+ // $ExpectType Date
34+ camelize ( { "my-date" : new Date ( ) } ) . myDate ;
35+
3336// $ExpectType RegExp
3437camelize ( / f o o / ) ;
38+
39+ // $ExpectType RegExp
40+ camelize ( { "my-regexp" : / f o o / } ) . myRegexp ;
41+
42+ // $ExpectType string[]
43+ camelize ( [ "foo-bar" , "bar-baz" ] ) ;
44+
45+ // $ExpectType string[]
46+ camelize ( { "my-array" : [ "foo-bar" , "bar-baz" ] } ) . myArray ;
47+
48+ // $ExpectType { fooBar: number; }[]
49+ camelize ( { "my-array" : [ { "foo-bar" : 1 } ] } ) . myArray ;
Original file line number Diff line number Diff line change @@ -7,14 +7,14 @@ type CamelCase<S extends string> = S extends `${infer FirstWord}${CamelSeparator
77 ? `${Lowercase < FirstWord > } ${Uppercase < SecondChar > } ${CamelCase < Remaining > } `
88 : Lowercase < S > ;
99
10- type Camelize < T > = {
11- [ K in keyof T as CamelCase < string & K > ] : T [ K ] extends { } ? Camelize < T [ K ] > : T [ K ] ;
12- } ;
13-
14- declare function camelize < T > ( obj : T ) : T extends string ? CamelCase < T >
10+ type Camelize < T > = T extends Date ? T
1511 : T extends RegExp ? T
16- : T extends Date ? T
17- : T extends { } ? Camelize < T >
12+ : T extends Array < infer I > ? Array < Camelize < I > >
13+ : T extends object ? {
14+ [ K in keyof T as CamelCase < string & K > ] : Camelize < T [ K ] > ;
15+ }
1816 : T ;
1917
18+ declare function camelize < T > ( obj : T ) : T extends string ? CamelCase < T > : Camelize < T > ;
19+
2020export = camelize ;
You can’t perform that action at this time.
0 commit comments