泛型类型“结果”专门具有太多类型参数(得到 2,但预期为 1)
Posted
技术标签:
【中文标题】泛型类型“结果”专门具有太多类型参数(得到 2,但预期为 1)【英文标题】:Generic type 'Result' specialized with too many type parameters (got 2, but expected 1) 【发布时间】:2019-05-26 22:36:10 【问题描述】:我将如何解决这个错误,它只在我导入 Almofire 时出现。
【问题讨论】:
请将代码和错误以文本形式发布。 【参考方案1】:这是Swift.Result<T, Error>
,而不是Swift.Result<T1, T2>
。如果要传递两个值,请使用元组,即Swift.Result<([Character], Data), Error>
(元组可以在结果的开关/案例处理中自动扩展)
此外,Alamofire 定义了它自己的 Result<T>
类型。如果你想使用 Swift 5 类型,你应该在它前面加上 Swift.
。
【讨论】:
谢谢,这是我第一次使用 Alamofire 在我的情况下是与 Alamofire 的冲突,只需添加前缀问题就解决了。非常感谢。 我们可能可以删除答案的第一部分。它实际上是Swift.Result<Success,Failure> where Failure: Error
。这里真正的问题是 Alamofire 对它的定义不同(你稍后会提到)。第一部分令人困惑且不正确
而Success
是T
。你在挑剔,没有什么是不正确的,任何会感到困惑的人都已经知道 Swift 中的泛型是如何工作的。此外,Alamofire 将其内部类型替换为 Swift 5 around the same time this answer was written 我们不妨删除这个问题。然而它不断得到支持,所以我猜人们仍然会在旧版本的 Alamofire 中遇到这个问题。
@DanielGalasko 它也引出了一个问题,你为什么在这里评论一个超过 2 年的答案?在 Stack Overflow 上肯定有更好的事情要做,比如回答问题:p以上是关于泛型类型“结果”专门具有太多类型参数(得到 2,但预期为 1)的主要内容,如果未能解决你的问题,请参考以下文章
带有泛型的 Typescript JSX - 参数隐式具有“任何”类型
GetMethod 的 Type[] 以获取具有两个参数和一个类型参数的泛型方法