func foo<T: P>(a: T) -> T.A { fatalError() } struct B {} protocol P {} extension P { typealias A = B }
これがコンパイル通らないのなんでですかね 'T' does not have a member type named 'A'; did you mean 'A'? になる (edited)struct B {} protocol P {} extension P { typealias A = B } func foo<T: P>(a: T) -> T.A { fatalError() }
か func foo<T: P>(a: T) -> T.A { fatalError() } struct B {} protocol P { associatedtype A } extension P { typealias A = B }
にすると通るようになるんですが。。 (edited)