如何在不调用TypeScript函数foo的情况下获取其return type?
无需调用函数就能获取其返回类型的方法
当然可以做到!TypeScript专门提供了工具类型来解决这个需求,完全不用实际调用函数~
先回顾下你的代码场景:
你有这样一个导出的函数:
export const foo = function(){ return { a: 1, b: true, c: 'bar' } };
然后在另一个文件导入:
import {foo} from './foobar';
接下来就是具体的实现方式:
- 使用TypeScript内置的
ReturnType<T>工具类型,它的作用就是提取函数类型T的返回值类型。 - 首先我们需要用
typeof foo获取到foo这个函数的类型,再把它传入ReturnType中,就能得到返回值的类型了。
具体代码示例:
import { foo } from './foobar'; // 提取foo函数的返回类型 type FooReturnType = ReturnType<typeof foo>;
此时FooReturnType会被TypeScript自动推断为{ a: number; b: boolean; c: string; },和你调用foo()得到的对象类型完全一致,而且全程没有执行过foo函数~
如果你的函数是泛型函数,ReturnType也能配合泛型参数灵活使用,不过针对你当前的普通函数场景,上面的写法就完全够用啦。
内容的提问来源于stack exchange,提问作者Alexander Mills
相关产品推荐
相关产品推荐

