首页 > 解决方案 > Swift 4.1.2 自动完成:建议对 Array 进行不应该的扩展

问题描述

也许我在这里发疯了,但extension Array where Element == String在 Swift 4.1.2 中,当它不应该存在时,它在 Swift 的自动完成类型中暴露了它的属性。

例如,这个扩展:

extension Array where Element == String {
    public var test: [String] {
        return ["test"]
    }
}

然后开始输入:

[123].te...

Swift 建议该test属性在 [Int] 上也可用,这是不可能的。然后语法检查器弹出错误:

在没有更多上下文的情况下,表达式的类型是模棱两可的

有什么我想念的吗?也许需要使用一些其他/额外的一致性限制?或者这是一个 Swift 错误?

在此处输入图像描述

标签: arraysswiftswift4swift-extensionsswift4.1

解决方案


这似乎是一个错误。

这个 Swift.org 错误报告演示了相同的行为:

https://bugs.swift.org/browse/SR-5388


推荐阅读