我有以下泛型类型定义:
# typed: true
class A
extend T::Sig
extend T::Generic
Value = type_member
sig { params(value: Value).void }
def initialize(value)
@value = value
end
sig { returns(Value) }
def value
@value
end
end
当我透露 的类型时#value
,我期待它是Integer
,但它是T.untyped
:
v = A.new(42)
T.reveal_type(v.value) #=> Revealed type: T.untyped https://srb.help/7014
我知道可以显式指定参数的类型A[Integer].new(42)
,但这样我不能将保留类型信息单独放在.rbi
文件中。
注释泛型类型的正确方法是什么?