微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用动态数量的键和值定义对象类型,并且值可以具有字符串或数字值

如何解决使用动态数量的键和值定义对象类型,并且值可以具有字符串或数字值

我有一个带有 nextjs 和 typescript 的项目。我有一个名为 submit func 的函数。 此函数接受三个参数。类型为字符串类型基端点和字符串类型,我的问题是第三个参数,我无法处理此参数的类型。我希望此参数接受一个具有动态键和值数量的对象,以及该值可以具有字符串或数字值。 这是我的提交功能

 interface values {
    [key: string]: object;
}
 const submitFunc = (type: string,baseEndPoint: string,values: values) => {
 //some code
 }

对于更多的解释,我想例如调用我的函数如下

submitFunc('login','/auth/mobile',{
            'mobile': 0912855838,'password': 'serer434312'
        });

submitFunc('name','/auth/name',{
            'name':'Max'
        });

等等

如果有人能帮助我,我将不胜感激

解决方法

interface values {
    [key: string]: string | number;
}

这将定义一个对象,其键为字符串,值为字符串或数字类型

,

使用Record<string,string | number>

const submitFunc = (
  type: string,baseEndPoint: string,values: Record<string,string | number>
) => {
  // your code here
};

此外,在您的特定情况下,您还可以join multiple types

type Values = { mobile: number; password: string } | { name: string };

const submitFunc = (type: string,values: Values) => {
  // your code here
};

或者如果你想拥有这三个键的所有组合,你可以定义optional properties

type Values = { mobile?: number; password?: string; name?: string };

const submitFunc = (type: string,values: Values) => {
  // your code here
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?