【TS】typescript 获取函数入参类型、返回值类型、promise返回值类型

文章目录

    • 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()

这个时候存在以下问题

  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返回值类型>>;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/870822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读懂一本书

各位好,今天我们要分享的这本书叫作《读懂一本书》。 很不好意思,书的作者是我。并不是我写的所有的书我都一定要讲,我也有很多合辑类的书籍是从来不讲的,我讲过《可复制的领导力》,讲过《低风险创业》,还有今天的这本《读懂一本书》,都是我有一些原创的观点和价值在里…

真正适合零基础的机器学习入门书!数学不好?python不会?通通都能拿下!!

在数字化时代&#xff0c;机器学习无疑是一股强劲的革新动力&#xff0c;正悄无声息地渗透并革新各行各业&#xff0c;成为推动创新、提升效率的关键法宝。 对于想要涉足这个领域&#xff0c;渴望掌握机器学习精髓的初学者来说&#xff0c;《Python机器学习基础教程》就是一本…

C++ list容器的底层实现

一.list是什么 list 是 C容器中的带头双向链表&#xff0c;头结点不存储数据&#xff0c;头结点的下一个元素是第一个存储数据的元素&#xff0c;头结点的前一个元素连接着最后一个存储数据的元素。&#xff08;结构如下图所示&#xff09; 其中链表里每一个节点的结构分为&…

PyQt5开发笔记:2. 2D与3D散点图、水平布局和边框修饰

一、装pyqtgraph和PyOpenGL库 pip install pyqtgraph pip install PyOpenGL 注意&#xff1a;一定不要pip install OpenGL&#xff0c;否则会找不到 二、3D散点图效果 import pyqtgraph as pg import pyqtgraph.opengl as gl import numpy as np# 创建应用程序 app pg.mkQ…

【计算机组成原理 | 第二篇】计算机硬件架构的发展

目录 前言&#xff1a; 冯诺依曼计算机架构 现代计算机架构&#xff1a; 总结&#xff1a; 前言&#xff1a; 在当今数字化时代&#xff0c;计算机硬件不仅是技术进步的见证者&#xff0c;更是推动这一进步的基石。它们构成了我们日常生活中不可或缺的数字生态系统的核心&a…

数据失踪了?小米手机数据恢复并不难,3个方法就能搞定

手机数据就如同我们的“数字生命线”&#xff0c;一旦失去&#xff0c;便仿佛陷入了一片数据的荒漠&#xff0c;感到无助与迷茫。小米手机用户们&#xff0c;你是否曾遭遇过这样的困境&#xff1a;打开手机&#xff0c;却发现重要的照片、联系人、短信等数据不见了&#xff0c;…

Flutter和React Native(RN)的比较

Flutter和React Native&#xff08;RN&#xff09;都是用于构建跨平台移动应用程序的流行框架。两者都具有各自的优势和劣势&#xff0c;选择哪个框架取决于您的具体需求和项目。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 以下是…

乐财业:打造财税服务的“硬核“竞争力

乐财业 智慧财税赋能平台 乐财业是目前市面上唯一一家真正实现“业财税”"三位一体全面融合的综合赋能平台&#xff0c;全新打造一站式、流程化、生态化的全产品供应链&#xff0c;立足于企业“业财"融合的发展趋势&#xff0c;凭借20年的财税服务经验&#xff0c;站…

CoreDump使用与实现原理

一、背景 系统发生native crash时&#xff0c;针对内存异常访问、内存踩踏等疑难问题&#xff0c;由于tombstone信息量不足无法精确定位分析这类问题。 二、coredump介绍 2.1 什么是coredump 当用户程序运行过程中发生异常, 程序异常退出时, 由Linux内核把程序当前的内存状…

ss工具dump出vsock 端口号异常分析

端口冲突时&#xff0c;会出现bind fail异常&#xff0c;这时可以用ss --vsock -pl命令dump出所有listen状态的vsock,但实际发现传入的9000端口&#xff0c;dump出来却是10275&#xff0c;如下图&#xff1a; 难道是内核把端口改了&#xff1f;分析内核态源码&#xff0c;ss最终…

模拟器大揭秘:功能多样,热门APP一网打尽

在咱们日常的数字生活中&#xff0c;模拟器这个词儿你可能不陌生&#xff0c;但它到底能干啥&#xff1f;又有哪些好用的模拟器APP呢&#xff1f; 今天&#xff0c;咱们就来聊聊模拟器的功能&#xff0c;并推荐几款热门的模拟器APP&#xff0c;帮助大家更好地利用这一技术。 …

Math/System/Runtime/Object

1、Math &#xff08;1&#xff09;常用方法 类型方法名说明public static intabs (int a)返回整数的绝对值public static doublepow (double a,double b)计算a的b次幂的值public static int max (int a,int b) 获取两个int值中的较大值public static intmin (int a,int…

java读取配置文件(包含国家于二字码对应关系文件)

读取配置文件 1.java文件 import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.ClassPathResource;import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Map; Slf4j public class…

数据结构笔记之连通图与强连通图

一、引言 在图论中&#xff0c;我们常常会遇到连通图和强连通图的概念。它们描述了图中顶点之间的连接情况&#xff0c;对于理解和分析复杂网络具有重要意义。 二、连通图 定义&#xff1a;若图G中任意两个顶点都是连通的&#xff0c;则称图G为连通图&#xff1b;否则称为非…

如何使用可道云结合内网穿透工具实现远程访问打造私人云盘

文章目录 1.前言2. Kodcloud网站搭建2.1. Kodcloud下载和安装2.2 Kodcloud网页测试 3. cpolar内网穿透的安装和注册4. 本地网页发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6.结语 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易…

【HTML入门】第十课 - 表格,也就是table标签

这一小节&#xff0c;我们说一下HTML中的表格。比如我们常常看见的学生成绩单&#xff0c;比如excel一个单元格一个单元格的&#xff0c;这些都是表格。 表格的标签名是 table 。 目录 1 表格中的一些子标签 1.1 表头区域 1.2 表格内容区域 1.3 行和列 2 实战一小下 2.…

JavaWeb(一:基础知识和环境搭建)

一、基本概念 1.前言 JavaWeb&#xff1a;在Java中&#xff0c;动态web资源开发网页的技术。 web应用分两种&#xff1a;静态web资源和动态web资源 Ⅰ. 静态web资源&#xff08;如html 页面&#xff09;&#xff1a; 指web页面中的数据始终是不变。 所有用户看到都是同一个…

python编程实例 输出两个数之间的素数

#输出两个数之间有多少素数 import math mint(input("开始&#xff1a;")) nint(input("结束&#xff1a;")) for i in range(m,n1):for j in range(2,int(math.sqrt(i))1):if i%j0:breakif(jint(math.sqrt(i))):print(str(i),"是一个素数")

DP(2) | Java | LeetCode 62, 63, 343, 96 做题总结(96 未完)

62.不同路径 我的代码&#xff08;报错&#xff09; 写的过程中感到很迷惑的点&#xff1a;①二维数组和这道题目的对应弄不清除&#xff0c;m n的初始化 是 dp[m][n] 还是 dp[n][m] ② class Solution {public int uniquePaths(int m, int n) {int[][]dp new int[m1][n1];d…

单目3D和bev综述

文章目录 SOTA2D 检测单目3d检测单目bev&#xff0c;一般是多目&#xff0c;小鹅通3d bev cam范式Transformer attention is all you need 2017ViT vision transformer ICLR 2021googleDETR 2020DETR3D 2021PETR 2022bevformerLSSbevdetcaddn指标 mAP NDS标注&#xff1a;基于点…