It doesn't matter as much as you think. I believe this is in part due to how assertive most Elixir code tends to be. [1] These assertions not only aid the LSP and can cause compiler warnings/errors, they also help LLMs just like types do.
Still, every release now contains new type system features. Next up is full type inference. [2] After that will be typed structs.