Add reasoning for not preferring type-pack union syntax

This commit is contained in:
witchiest 2024-11-22 13:19:51 -05:00 committed by GitHub
parent 4f3753df13
commit 97f738eaf0
Signed by: DevComp
GPG key ID: B5690EEEBB952194

View file

@ -104,18 +104,16 @@ local success, result = pcall(mrow, "cat food", ":3")
## Alternatives
Allow for type pack unions to be written by developers, with the syntax probably looking like this:
```luau
local function mrow(meow: string, mrrp: string): (true, string) | (false, nil)
-- code here
end
```
With this example breaking backwards compadibility with some types developers may have written already, as today the following is allowed:
```luau
-- inferred as: ((meow: string, mrrp: string) -> (true, string)) | false
type mrrp = (meow: string, mrrp: string) -> (true, string) | false
```
Although it should be mentioned that result types are the only valid usecase for type pack unions, and just having a result type would remove a potential footgun of someone using type pack unions for something thats not a result type.
Do nothing, and leave it up to developers if they want to write overloaded functions, or make their own result type.