我正在尝试为promise.rb
gem添加类型。具体来说,我的目标是为Promise.all
静态方法创建一个体面的定义。
从本质上讲,它是从[Promise[A], Promise[B]]
到Promise[[A, B]]
的数组上的平面图。
我有一个有效的签名,用于一个,我想用硬编码一些不同的金额(例如最多10个),因为我认为有一种自动执行此操作的好方法。
据我所知,我只能在我已经尝试过的方法定义上方放一串信号。
sig看起来像这样(在rbi中-没有实现):
sig do
type_parameters(:A)
.params(enum: [
Promise[T.type_parameter(:A)],
])
.returns(Promise[[
T.type_parameter(:A),
]])
end
def self.all(enum); end
对于两个项目,它看起来像这样:
sig do
type_parameters(:A, :B)
.params(enum: [
Promise[T.type_parameter(:A)],
Promise[T.type_parameter(:B)],
])
.returns(Promise[[
T.type_parameter(:A),
T.type_parameter(:B),
]])
end
def self.all(enum); end
有没有办法使这项工作有效?