sorbet
Rubyの静的型チェッカー
導入方法
https://sorbet.org/docs/adopting
sorbet周りのgemを導入する
使いかた
シグネチャを書く
code:ruby
# typed: true
class Greeter
extend T::Sig # T:: はsorbet-runtimeによるものなので、requireしてもよいかも
prop msg, String
sig { params(msg: String) }
def initialize(msg)
self.msg = msg
end
sig { returns(String) }
def greet()
self.msg
end
sig {void}
def output
puts self.msg
end
end
typed: trueをファイルの初めに書くのはmust
returnで引数の型を渡す
paramsにHashみたく引数名と型を渡す
T::Sigをextendする
nilも取りうる場合にはT.nilable(String)などとする