问题描述
我有一个带有 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
};