首页 > 解决方案 > “方法 << 在 T.class_of(A) 上不存在”将 def_delegators 与 sorbet 一起使用

问题描述

我有一个代码,它使用 Singleton 和 Forwardable 将一些方法委托给 internal Hash

class A
  include Singleton

  extend T::Sig

  sig { returns(T::Hash[T.untyped, T.untyped]) }
  attr_reader :stars

  class << self
    extend Forwardable
    def_delegators :instance, :<<, :[], :stars
    def_delegators :stars, :length
  end

  sig { void }
  def initialize
    @stars = {}
  end

  sig { params(identifier: String).returns(B) }
  def [](identifier)
    @stars[identifier]
  end
end

我在课外使用A << B.newA当我跑步时,be srb tc我得到Method << does not exist on T.class_of(A). 有什么建议或想法可以让我摆脱这个警告吗?

标签: rubysorbet

解决方案


推荐阅读