我有一个方法返回一个对象,该对象可能是许多不同类型的对象之一,但它们都是同一个祖先类的一部分。精确的对象类型是动态推断的。
但是,我对在签名中为返回值添加什么感到困惑。我在下面放置了一个占位符instance_of
来说明问题:
sig{params(instance_class: String).returns(instance_of ParentClass)}
def build_instance instance_class
klass = Object.const_get(instance_class)
return klass.new
end
鉴于我不知道将返回哪个精确的类(而且我不想明确列出它们),但我知道它将ParentClass
是 Sorbet 中是否有办法指定它的子类?我可以使用T.untyped
,但它不必要地松动。