-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Suggestion: Support for native functions #170
Comments
Hey @Ceedrich , thanks for contributing. Sorry for the late reply I somehow lost your notification in my inbox. Even though it is not in our roadmap and I think it could be too much to add it onto the native functions I'm open to the idea and would love to hear some suggestion about it. |
Saw this in passing. If you're looking for how to actually implement it, I think you could do something like extending the global namespace: declare global {
interface ReadonlyArray<T> {
join<const T extends readonly string[], D extends string = ''>(this: T, separator?: D): Join<T, D>;
}
} I'm just lifting the type signature from Lines 33 to 36 in 6196f56
It's possible there's a different signature you can use that would work better. |
I'm not sure how much it matters, but you also wouldn't have to worry about tree shaking this native stuff. It's all at the type level, so it wouldn't end up in the bundle anyway. The things that aren't on the native objects (like |
Hey @joneshf ! The implementation seems trivial indeed. I just need to think of a good API for that. |
@Ceedrich also might want to suggest something
|
I think the best developer experience as a consumer would be to just be able to have the stricter typings of This should be possible just by declaring the types of the native functions in a global The user would still be able to use the additional functions the library provides and use the native ones with better typing. Another thought on that: are there any scenarios where you would prefer the native typings to the ones Personally however, I would eventually deprecate the wrapper functions around the native ones as they are generally more unintuitive. About this last part, I am not actually sure and looking forward to hearing your thoughts. |
Suggestion: Support for native functions
I love, how your library enhances the typescript experience when working with literal types. However, it is kind of exhausting to always use the library's functions instead of the native javascript ones.
Would you consider (maybe as an option) mapping the
string-ts
types onto the native javascript functions (see example below)?Example:
Before:
After:
I am looking forward to your evaluation
The text was updated successfully, but these errors were encountered: