typealias NestedArray<T> = Array<Array<T>> where T: Equatable extension NestedArray { var hello: String { return "hello" } } [1, 2, 3].hello // OK!! [[(), ()], []].hello // OK!!
extension NestedArray // これはウソでコンパイラはextension Arrayと解釈していて where Element.Element: Equatable // 当然ArrayはElement.Elementなんて持ってないのでコンパイルエラー
ということか (edited)