嵌套类型别名隐藏了外部类型声明
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)
给出
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)