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
};