文章目录
- 1. 准备工作
- 2. 获取函数入参的类型
- 3. 获取函数返回值类型
- 4. 获取promise返回值类型
1. 准备工作
创建
utils.ts
interface User {id: number;name: string;age: number;
}
interface Params {method: string;url: string;
}function getUserList(params: Params,other: string,data: User[]
): Promise<User[]> {return new Promise((resolve, reject) => {resolve([{id: 1,name: "张三",age: 18,},{id: 2,name: "李四",age: 20,},]);});
}
export default getUserList;
创建 index.ts
import getUserList from "./utils";getUserList()
这个时候存在以下问题
- 如若函数参数、返回值类型
没有导出
,你就不知道怎么传递了,特别是函数的参数不是基本数据类型
- 在开发中一般,都是要把
函数的入参、返回值
,先定义个变量准备接收
可以看出是需要三个参数,但是这三个参数
类型没导出
怎么办呢?
2. 获取函数入参的类型
语法格式
let param1 = Parameters<typeof 这里填写你要获取哪一个函数的参数类型>
默认是这样的,默认他会把这个函数的入参,放在一个
数组里面
,因为函数不确定有几个入参
如若想获取第一个 入参的类型,就是这样写
let param1 = Parameters<typeof 这里填写你要获取哪一个函数的参数类型>[0]
这样就能和
前面
对应起来了
import getUserList from "./utils";let param1: Parameters<typeof getUserList>[0] = {method: "post",url: "http:www.baidu.com",
};
let param2: Parameters<typeof getUserList>[1] = "你好";
let param3: Parameters<typeof getUserList>[2] = [{ id: 1, age: 20, name: "测试1" },{ id: 2, age: 20, name: "测试2" },
];
3. 获取函数返回值类型
语法格式
let returnRes= ReturnType<typeof 这里填写你要获取哪一个函数的返回值类型>
import getUserList from "./utils";let param1: Parameters<typeof getUserList>[0] = {method: "post",url: "http:www.baidu.com",
};
let param2: Parameters<typeof getUserList>[1] = "你好";
let param3: Parameters<typeof getUserList>[2] = [{ id: 1, age: 20, name: "测试1" },{ id: 2, age: 20, name: "测试2" },
];let returnRes: ReturnType<typeof getUserList>;returnRes = getUserList(param1, param2, param3);
returnRes.then((res) => {let resNew: Awaited<ReturnType<typeof getUserList>>;resNew = res;console.log(resNew);
});
4. 获取promise返回值类型
语法格式
let resNew: Awaited<ReturnType<typeof 这里填写你要获取哪一个函数的Promise返回值类型>>;