2
const myObj = {
test: true,
};
type MyType = typeof myObj;
const getValue =(): MyType => {
return myObj;
};
// how to do this??
type TheReturnType = getValue;
const nextObj: TheReturnType = {
test: false,
};
私は、関数が返されますtype
を抽出したいと思いますので、私はその型を再利用することができます。私はそれを得る方法がないと思うことができます。上記は機能しません。 typeof getValue
が関数を返します。さんはこれを使ってみましょう
type ExtractReturn<F> =
$PropertyType<$ObjMap<{ x: F }, <R>(f:() => R) => R>, 'x'>
:
type TheReturnType = ExtractReturn<typeof getValue>
今TheReturnType
がgetValue
機能の戻り値の型を持っています。ここ
'getValue'は' MyType'の型を返しますので、 'nextObj'の型を' MyType'に設定することはできませんか?あるいは私は誤解していますか? – saadq
私はこれを行う方法はないと思います。また、与えられた関数が単一の型しか持たないという保証もありません。多くの関数は、入力引数に応じて異なる型を持ちます。 – loganfsmyth
@loganfsmyth多くの可能な型は、単一の型であるそれらの型の和集合として表現できます! –