当它们是函数时从对象属性中提取类型
Extracting types from object properties when they are functions
您好,我正在尝试像这样提取对象的属性:
const combinedReducers = {
markers: markersReducer, // () => MarkType
mapCenter: setMapCenter // () => CenterType
}
问题是我不想根据 属性 单独进行。第二个问题是属性是 return 某些东西的函数,我想要它的类型。
应该是这样的
interface Props {
markers: MarkType,
center: CenterType
}
这可能吗?谢谢。
当然,你可以做到:
const markersReducer = () => 'hello'
const setMapCenter = () => 42
const combinedReducers = {
markers: markersReducer, // () => MarkType
mapCenter: setMapCenter // () => CenterType
}
type Fn = (...args: any) => any
type Props<Obj extends Record<string, Fn>> = {
[Prop in keyof Obj]: ReturnType<Obj[Prop]>
}
type Result = Props<typeof combinedReducers>
您好,我正在尝试像这样提取对象的属性:
const combinedReducers = {
markers: markersReducer, // () => MarkType
mapCenter: setMapCenter // () => CenterType
}
问题是我不想根据 属性 单独进行。第二个问题是属性是 return 某些东西的函数,我想要它的类型。 应该是这样的
interface Props {
markers: MarkType,
center: CenterType
}
这可能吗?谢谢。
当然,你可以做到:
const markersReducer = () => 'hello'
const setMapCenter = () => 42
const combinedReducers = {
markers: markersReducer, // () => MarkType
mapCenter: setMapCenter // () => CenterType
}
type Fn = (...args: any) => any
type Props<Obj extends Record<string, Fn>> = {
[Prop in keyof Obj]: ReturnType<Obj[Prop]>
}
type Result = Props<typeof combinedReducers>