[英]Adding Sorbet type signatures to attr_reader/attr_writer with multiple variables
我有一個attr_reader
提供多個變量,如下所示:
attr_reader :user, :series
我想為其添加類型簽名,但 Sorbet 不支持多種返回類型,
sig { returns(User, Series) }
attr_reader :user, :series
像這樣將它們分開是唯一的選擇嗎?:
sig { returns(User) }
attr_reader :user
sig { returns(Series) }
attr_reader :series
是的,唯一的選擇是拆分您的屬性聲明,就像您為它們定義單獨的 getter/setter 方法時所做的那樣,除非您的所有屬性都屬於同一類型。
這樣做的原因是,冰糕,在其運行的DSL相位,實際使用sig
上的attr_reader
/ attr_writer
/ attr_accessor
聲明定義sig
上由這些聲明產生的合成方法。 因此,單個吸氣劑為attr_reader
,單個設定器attr_writer
和吸氣/設定部對用於attr_accessor
被合成地生成和sig
s的施加到它們。
因此, 這將是有效的:
sig { returns(String) }
attr_reader :some_string_attr, :other_string_attr
但這不會是:
sig { returns(String, User) }
attr_reader :some_string_attr, :some_user_attr
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.