TS设置接收的形参类型

2024-06-06 12:52
文章标签 类型 设置 ts 接收 形参

本文主要是介绍TS设置接收的形参类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在我们使用pinia时会接受参数,一般来说是传递两个参数

setGlobalState(...args: ObjToKeyValArray<GlobalState>) {this.$patch({ [args[0]]: args[1] });
}

例如此时传递的是globalStore.setGlobalState("token", "123");

那么此时的args就是["token","123"]

这里定义的ObjToKeyValArray如下

type ObjToKeyValArray<T> = {[K in keyof T]: [K, T[K]];
}[keyof T];

GlobalState定义的ts类型如下

export interface GlobalState {layout: LayoutType;language: LanguageType;maximize: boolean;primary: string;isDark: boolean;isGrey: boolean;isWeak: boolean;asideInverted: boolean;headerInverted: boolean;isCollapse: boolean;accordion: boolean;breadcrumb: boolean;breadcrumbIcon: boolean;tabs: boolean;tabsIcon: boolean;footer: boolean;token: string;userInfo: any;sysInfo: any;socket: any;personnelBoard: Person | null;assemblySize: AssemblySizeType;
}

解释一下上方ts定义

这段 TypeScript 代码定义了一个类型别名 `ObjToKeyValArray<T>`,它将一个对象类型 `T` 转换为由键值对数组组成的元组数组类型。让我解释一下它是如何工作的:1. `type ObjToKeyValArray<T>`:这部分定义了一个类型别名 `ObjToKeyValArray<T>`,它接受一个泛型参数 `T`,表示输入的对象类型。2. `{ [K in keyof T]: [K, T[K]] }`:这是一个映射类型(Mapped Type)。`keyof T` 表示获取对象 `T` 的所有键的联合类型。`[K in keyof T]` 使用映射类型来遍历对象 `T` 的所有键,并为每个键创建一个新的属性。3. 对于每个键 `K`,`[K, T[K]]` 表示一个由键和对应值组成的元组。这就是把对象的键值对转换为数组的操作。例如,如果对象 `T` 的类型是 `{ foo: string; bar: number }`,那么 `[K, T[K]]` 就会分别变成 `['foo', string]` 和 `['bar', number]`。4. `[keyof T]`:这部分是为了获取映射类型 `{ [K in keyof T]: [K, T[K]] }` 中所有属性的联合类型,即所有键值对数组组成的数组类型。综上所述,`ObjToKeyValArray<T>` 接受一个对象类型 `T`,并将其转换为由该对象的所有键值对组成的元组数组类型。

这篇关于TS设置接收的形参类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1036169

相关文章

PyCharm如何设置新建文件默认为LF换行符

《PyCharm如何设置新建文件默认为LF换行符》:本文主要介绍PyCharm如何设置新建文件默认为LF换行符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm设置新建文件默认为LF换行符设置换行符修改换行符总结PyCharm设置新建文件默认为LF

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Python如何查看数据的类型

《Python如何查看数据的类型》:本文主要介绍Python如何查看数据的类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python查看数据的类型1. 使用 type()2. 使用 isinstance()3. 检查对象的 __class__ 属性4.

Python容器类型之列表/字典/元组/集合方式

《Python容器类型之列表/字典/元组/集合方式》:本文主要介绍Python容器类型之列表/字典/元组/集合方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 列表(List) - 有序可变序列1.1 基本特性1.2 核心操作1.3 应用场景2. 字典(D

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触