访问协议扩展中的静态字段值

Access static field value in protocol extension

如果我有这样的协议:

protocol X {
    static var typeName: String
}

有没有办法让协议扩展中的实例方法访问该字段的值?

extension X {
    func getTypeName() -> String {
        // return the static typeName property of this instance's type.
        // I'd expect it to be something like self.Type.typeName, but that's not a thing apparentl.
    }
}

显然,像这样的简单 getter 毫无用处,但它是我遇到的问题的一个最小示例。

您可以使用 Self:

extension X {
    func getTypeName() -> String {
        Self.typeName
    }
}