私はこれしようとした場合:プライベートエキスパンドタイプからパブリックタイプアーリアを使用できないのはなぜですか?
sealed class Attributes
data class Attributes1(
val prop1: String
) : Attributes()
private data class IMyType<A>(
val attributes: A
) where A: Attributes
typealias MyType1 = IMyType<Attributes1>
を...私はエラーを取得する:露出する 'プライベート'、拡張型IMyTypeでtypealias '公共'。
これを防止する理由は何ですか?
注:Kotlin 1.1.4
編集を使用して1
私はtypealiasesが何であるかを理解し、私が代わりに制約の意味を理解しています。
私が求めているのは、これらの制限がそこに存在する必要がある理由です。
私の例のコードを考えてみたら... MyType1
(と他の人たち)がこのファイルの外でアクセスできるようにしたいが、raw/generic IMyType
をこのファイルの外で使用したくない。
これは正当なユースケースではありませんか?
私の最初の編集を参照してください。 – pleasedesktop
@pleasedesktop彼らは同じクラスを指していますが、新しいタイプを導入していません。状況を示す例を追加しました。 – BakaWaii