我如何帮助结构推断闭包中的视图类型值,该闭包在 SwiftUI 中提供所需的类型?

How I can help struct infer View type values in a closure that feeds the needed type in SwiftUI?

下面的代码有效:

struct ContentView: View {
    var body: some View {
        Text("Hello, world!")
            .customViewModifier(modifier: { view in CustomModifier(content: { view } )} )
    }
}


struct CustomModifier<Content: View>: View {
    
    let content: () -> Content
    
    var body: some View {
        content()
            .foregroundColor(.red)
    }
}


extension View {
    func customViewModifier<ContentModifier: View>(modifier: (Self) -> ContentModifier) -> some View {
        return modifier(self)
    }
}

我的目标 是能够使用下面的代码。目前,Xcode 无法帮助我修复错误。

struct ContentView: View {
    var body: some View {
        Text("Hello, world!")
            .customViewModifier(modifier: CustomModifier)
    }
}

有没有办法让我的目标成为可能?

这是我解决问题的尝试:

extension View {
    func customViewModifier2<ContentModifier: View>(modifier: (Self) -> ((Self) -> ContentModifier)) -> some View {
        return modifier(self)
    }
}

错误:

Type '(Self) -> ContentModifier' cannot conform to 'View'

最终的真正目标并不明确(因为使用基于 ViewModifier 的方法确实更好),但是如果你想使用类型作为参数,它可以像下面这样

*使用 Xcode 13.2 / iOS 15.2

编译
struct ContentView: View {
    var body: some View {
        Text("Hello, world!")
            .customViewModifier(modifier: CustomModifier.self) // << type !!
    }
}

extension View {
    func customViewModifier(modifier: CustomModifier<Self>.Type) -> some View {
        return modifier.init(content: { self })
    }
}