Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: add loose auto complete to string literals where applicable (#966)
## What kind of change does this PR introduce? Add "loose autocomplete" to`WeakPasswordReasons`, `AMREntry.method`, `Factor.factor_type`, `SignInWithIdTokenCredentials.provider` and `AuthError.code ` ## What is the current behavior? The above types define possible string literal values, which is great, but they're unioned with `string`. As a regular `"literal" | string` just ends up as a `string` this foregoes the benefit of defining the literals in the first place. ## What is the new behavior? TypeScript still allows any possible string as a valid value (notice no error on the "not in there"), but now the predefined literals show up as hints. This is done by using `"literal" | string & {}`. While this seems hacky, it's something that works and something the TS team test against meaning they won't "fix" it in future releases. <img width="632" alt="image" src="https://github.com/user-attachments/assets/a6bd07c1-c460-4b80-87ae-2c855e996157"> Currently these hints aren't shown as the type just ends up as a simple `string`. ## Additional context I believe this can be quite helpful for people when trying to handle errors etc. I know `string & {}` might look somewhat weird for maintainers, if preferable I can create a `LooseAutocomplete<T>` or something and wrap them in there but this seemed cleaner.
- Loading branch information