ウェブサイト検索

クラス - TypeScriptで拡張されたジェネリックプロパティを初期化する


私は、型 boolean を拡張するジェネリックパラメータを持つクラスを作成しようとしています。次のように、そのジェネリックパラメータをプロパティに割り当てることで、ランタイムでアクセス可能にしようと試みました:

class Example<T extends boolean> {
    foo: T = true;
}

基底クラスの宣言は機能しますが、foo を初期化する行は次のエラーを引き起こします:

Type 'boolean' is not assignable to type 'T'.
  'boolean' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'boolean'.

これは私にはあまり意味がありません。true | falseに該当しないけれども拡張するTは、他にどのような型が考えられるのでしょうか?なぜ、他の型である可能性があると、それがbooleanとして初期化できなくなるのですか?