如何在TypeScript中获取Angular FormBuilder泛型函数的返回类型?
解决Angular类型化表单中获取FormBuilder.group返回类型的问题
你可以通过定义泛型辅助类型来实现需求,TypeScript不允许直接在ReturnType中给泛型函数传递泛型参数,但我们可以先把FormBuilder.group方法绑定到指定泛型参数上,再提取它的返回类型:
// 定义辅助类型,用于获取FormBuilder.group<T>的返回类型 type FormGroupFromBuilder<T> = ReturnType<typeof FormBuilder.prototype.group<T>>; // 示例用法 interface LoginForm { username: string; password: string; } // 此时LoginFormGroup的类型等价于FormGroup<LoginForm> type LoginFormGroup = FormGroupFromBuilder<LoginForm>;
其实更直接的是,Angular中FormBuilder.group<T>()的返回类型本身就是FormGroup<T>,如果你的需求只是得到对应的表单组类型,直接使用FormGroup<T>也完全可行。但如果是需要通过函数返回类型推导的场景,上面的辅助类型写法就可以解决问题。
内容的提问来源于stack exchange,提问作者Eduardo Fernandes
相关产品推荐
相关产品推荐

