logoalt Hacker News

nitzatoday at 8:05 AM2 repliesview on HN

Their docs say that something like:

`def greet(name: String, greeting: String = "Hello"): String`

will work for kwargs with default values — https://type-ruby.github.io/docs/getting-started/understandi...


Replies

jrochkind1today at 12:11 PM

That example is for positional args with default values, according to the example usage: `greet("Alice")`. Can't find ruby-style keyword args example, with or without default values. maybe no kw args in t-ruby?

Or wait, found examples that claims to be keyword arguments, but you define them just the same? I'm confused. https://type-ruby.github.io/docs/learn/functions/optional-re...

Liotoday at 11:24 AM

I think they've missed a trick there, they could have used `|` like low-type does.

e.g.

  def greet(name: String | "Hello"): String
I know it's all subjective but I think that reads better and it's valid ruby.

To be honest low-type with a static analysis tool would be my favourite syntax for this.

https://github.com/low-rb/low_type