|
|
|
|
|
by hmmokidk
1132 days ago
|
|
The only reason I would want types is for specific error types that I could ideally match against instead of them being raised (in Node.js or Typescript). In Elixir you have the option of calling functions that raise vs functions that return an error tuple so there's no contention there (the difference between function() (this does error tuple) and function!() (this raises). Elixir also has this idea of a typespec and I have never felt I needed more, personally. |
|
Also even with Elixir's typespecs, static typing is only fully useful if the entire ecosystem around a language embraces it. If some of the libraries you use don't ship with type definitions, it's going to be difficult for any static analysis tool to do a decent job. Almost every major JS library either ships with its own types, or has quality third party types available via Definitely Typed. It doesn't seem like the Elixir community has really embraced static typing to the same extent that TypeScript developers have. The creator of Phoenix for example hates dialyzer [2].
[1] https://elixir-lang.org/blog/2022/10/05/my-future-with-elixi....
[2] https://elixirforum.com/t/do-you-use-dialyzer-in-your-projec...