Добавить ограничения для общих параметров в расширении

У меня есть эта функция:

func flatten<Key: Hashable, Value>(dict: Dictionary<Key, Optional<Value>>) -> Dictionary<Key, Value> {
    var result = [Key: Value]()
    for (key, value) in dict {
        guard let value = value else { continue }
        result[key] = value
    }
    return result
}

Как видите, он превращает[Key: Value?] словарь в[Key: Value] один (без дополнительного).

Я хотел продлитьDictionary класс с новым методом только для классов, значение которых являетсяOptional любого типа, но я не могу добавить ограничения к общим параметрам словаря.

Вот что я попробовал:

extension Dictionary where Value: Optional<Any> {
    func flatten() -> [Key: Any] {
        var result = [Key: Any]()
        for (key, value) in self {
            guard let value = value else { continue }
            result[key] = value
        }
        return result
    }
}

Но терпит неудачу с ошибкой:

Type 'Value' constrained to non-protocol type 'Optional<Any>'

Ответы на вопрос(2)

Ваш ответ на вопрос