Короче говоря, вы не можете.Swift не позволит вам вызывать функцию с неполным типом, поскольку он не может генерировать для нее код (на уровне компьютера).
В зависимости от ваших потребностей, вы можете создать протокол, который обеспечивает дискриминантдля разных случаев, и сделайте так, чтобы ваш DataSource
соответствовал ему:
enum Discriminant {
case dataSource, notDataSource
}
protocol Discriminable {
static var discriminant: Discriminant { get }
}
extension DataSource: Discriminable {
static var discriminant: Discriminant { return .dataSource }
}
// ...
let result = type(of: dataSource).discriminant == .dataSource
print(result) // Prints "true"