从函数返回值创建类型



我正在尝试摆脱打字稿反应代码中的重复,我想知道是否可以从已知的返回类型函数创建一个类型?

像这样:

const mapStateToProps = (state: StoreState) => ({settings: store.settings})
type Props = ReturnTypeOf<typeof mapStateToProps>

TypeScript 实际上正是使用这个作为手册中条件类型的示例:

type ReturnType<T> = T extends (...args: any[]) => infer R ? R : any;

对于您的示例:

const mapStateToProps = (state: StoreState) => ({settings: store.settings})
type Props = ReturnType<typeof mapStateToProps>

最新更新