私は可能ではないと思っていますが、質問する価値はあります。 ジェネリックメソッドまたはクラスでは、使用されているジェネリックTタイプの名前をログに記録したいと思います。文字列として必要です。Typescriptジェネリック型T toString
このような方法を想像:
let m = getTypeName<Message>(); // Expected string "Message"
let p = getTypeName<Person>(); // Expected string "Person"
上記getTypeNameメソッドが間違っている、それもビルドしません。
static getTypeName<T>(): string {
return typeof T; // This is wrong
}
は、私がこのようにそれを使用できるように期待を。 typeofはJSで蒸散され、所望の効果が得られません。 私は様々なことを試みましたが、成功しませんでした。
実際に行う方法はありますか?
EDIT:これはなぜの重複はありません:this question
質問とサンプルコードは、オブジェクトではなく、指定されたタイプの名前を取り戻す方法を示しています。 "[ts]型 'typeof MyType'の引数が 'new()'型のパラメータに代入されないため、このメソッドは汎用ではありません。 => MyType '。 " さらに、ジェネリックメソッド内で関数を使用する場合、パラメータとしてTを使用することはできません。つまり、ジェネリックタイプから名前を取得する必要があるすべての場所に、ctorを追加する必要があります。パラメータ。
を追加しました:https://stackoverflow.com/questions/41160690/is-it-possible-to-get-the-type-name-of-a-generic-type – artem
可能[generic型の型名を取得することは可能ですか?](https://stackoverflow.com/questions/41160690/is-it-possible-to-get-the-type-name-of-a-ジェネリック型) – Duncan