我正在尝试为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
有没有办法使这项工作?