Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript:每个键的映射对象值类型_Typescript - Fatal编程技术网

Typescript:每个键的映射对象值类型

Typescript:每个键的映射对象值类型,typescript,Typescript,在下面的示例代码中: const obj = { a: () => 1, b: () => '2' } type typeMap = Record<keyof typeof obj, (arg: unknown) => void> const map: typeMap = { a: (numberArg) => numberArg + 1, b: (stringArg) => stringArg.length } const obj

在下面的示例代码中:

const obj = {
  a: () => 1,
  b: () => '2'
}

type typeMap = Record<keyof typeof obj, (arg: unknown) => void>

const map: typeMap = {
  a: (numberArg) => numberArg + 1,
  b: (stringArg) => stringArg.length
}
const obj={
a:()=>1,
b:()=>“2”
}
类型typeMap=记录无效>
常量映射:类型映射={
答:(numberrarg)=>numberrarg+1,
b:(stringArg)=>stringArg.length
}
我希望Typescript知道
map
对象中的函数参数类型与原始
obj
对象中每个键的返回类型相同。我知道有
ReturnType
实用程序,但我不知道如何使用它从
obj
映射每个道具

总之,我希望
numberrag
的类型为
number
stringArg
的类型为
string

您可以在中打开此代码。

使用:

//为了方便起见使用别名
类型ObjType=类型obj;
类型类型映射={
[K in keyof ObjType]:(arg:ReturnType)=>未知
};

使用:

//为了方便起见使用别名
类型ObjType=类型obj;
类型类型映射={
[K in keyof ObjType]:(arg:ReturnType)=>未知
};

太棒了!这很有效,非常感谢你的快速反应answer@Oswaldo我很高兴能帮助你!如果您感到满意,请让人们知道问题已经得到了回答。@Oswaldo,别忘了向上投票!)令人惊叹的!这很有效,非常感谢你的快速反应answer@Oswaldo我很高兴能帮助你!如果您感到满意,请让人们知道问题已经得到了回答。@Oswaldo,别忘了向上投票!)
// alias for convenience
type ObjType = typeof obj;
type TypeMap = {
  [K in keyof ObjType]: (arg: ReturnType<ObjType[K]>) => unknown
};