TypeScriptでジェネリック型の内部型を取得する
TypeScriptでジェネリック型の内部型を取得するにはどうすればいいですか?つまり、myType<T>のTです。
例えば:
export class MyClass {
myMethod(): Observable<{ prop1: string, ... }> {
....
}
}
type myClassReturn = ReturnType<MyClass['myMethod']>;
// Sets the type to 'Observable<{ prop1: string, ... }>'.
// How do I set this to just '{ prop1: string, ... }'?
ありがとう
回答 #1
ジェネリック型から型パラメータを取得するために、infer キーワードを使用することができます。例えば:
type GetInsideObservable<X> = X extends Observable<infer I> ? I : never;
// in your case it would be:
type A = GetInsideObservable<ReturnType<MyClass['myMethod']>> // { prop1: string, ... }
