簡體   English   中英

使用多個變量將 Sorbet 類型簽名添加到 attr_reader/attr_writer

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM