嵌套类型别名隐藏了外部类型声明

Nested typealias is hiding outer type declaration

给出

class A {
    ...
}

class B {
    typealias A = Int
    ...
}

如何在 class B 的主体中声明 class A 的实例变量?

类型别名 A 是 "shadowing" 另一个 class 类型 A

一种解决方案是在阴影类型前加上模块名称前缀,以告诉编译器它与类型别名不同。

例如,如果您的模块名为 "MyApp",请执行:

class A {
    let test = "test"
}

class B {
    typealias A = Int
    let instance = MyApp.A()
}

let b = B()
print(b.instance.test)