【TS】typescript 获取函数入参类型、返回值类型、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()

这个时候存在以下问题

  1. 如若函数参数、返回值类型没有导出,你就不知道怎么传递了,特别是函数的参数不是基本数据类型
  2. 在开发中一般,都是要把 函数的入参、返回值 ,先定义个变量准备接收

在这里插入图片描述

可以看出是需要三个参数,但是这三个参数类型没导出 怎么办呢?

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返回值类型>>;
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值