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

相关文章

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

SpringBoot项目引入token设置方式

《SpringBoot项目引入token设置方式》本文详细介绍了JWT(JSONWebToken)的基本概念、结构、应用场景以及工作原理,通过动手实践,展示了如何在SpringBoot项目中实现JWT... 目录一. 先了解熟悉JWT(jsON Web Token)1. JSON Web Token是什么鬼

使用Spring Cache时设置缓存键的注意事项详解

《使用SpringCache时设置缓存键的注意事项详解》在现代的Web应用中,缓存是提高系统性能和响应速度的重要手段之一,Spring框架提供了强大的缓存支持,通过​​@Cacheable​​、​​... 目录引言1. 缓存键的基本概念2. 默认缓存键生成器3. 自定义缓存键3.1 使用​​@Cacheab

详解Spring Boot接收参数的19种方式

《详解SpringBoot接收参数的19种方式》SpringBoot提供了多种注解来接收不同类型的参数,本文给大家介绍SpringBoot接收参数的19种方式,感兴趣的朋友跟随小编一起看看吧... 目录SpringBoot接受参数相关@PathVariable注解@RequestHeader注解@Reque

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景