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

define object type with dynamic number of key and value and also that values can have string or number value

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

 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, baseEndPoint: string, values: Values) => {
  // your code here
};

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

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

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