Handle CamelCase with non-literal strings #531
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #513
Fixes #475
Hi there! I appreciate this library helping us handle a lot of common TypeScript operations!
Recently I encountered an issue and would like to propose a solution to that.
I'm using
CamelCasedPropertiesDeep
to transform the object's keys to camel case, with some of the proproties are just normalRecord<string, ObjectType>
.In runtime, I have done an extra handling to prevent transforming in that layer. However, the type definition does not match this handling. I get
{ '': TransformedObjectType }
in the type, but I was expecting{ [x: string]: TransformedObjectType }
.I found that the cause was that currently
CamelCase<string>
is evaluated to''
.Therefore, I'd like to suggest a way to handle it and support my use case.
My suggestion is adding another branch of conditional type checking if
string extends Type
, and only proceed to the main transforming logic if it is not.I hope this makes sense and would love to hear back from you if it is not handling enough.
Thank you!