Reactjs 是否可以将对象中函数的流类型动态设置为其属性之一的类型?
考虑以下类型的配置:Reactjs 是否可以将对象中函数的流类型动态设置为其属性之一的类型?,reactjs,flowtype,Reactjs,Flowtype,考虑以下类型的配置: type Config = { props: any, isEnabled?: (args: { custom: string, props: any }) => boolean, }; 我想使用这个配置类型,这样对它的任何更改都将应用于它的所有子类型。我可以这样做: type ConfigAProps = { propA: boolean } type ConfigBProps = {| propsB: string |} type Confi
type Config = {
props: any,
isEnabled?: (args: { custom: string, props: any }) => boolean,
};
我想使用这个配置类型
,这样对它的任何更改都将应用于它的所有子类型。我可以这样做:
type ConfigAProps = {
propA: boolean
}
type ConfigBProps = {|
propsB: string
|}
type ConfigA = {|
...Config,
props: ConfigAProps
|}
type ConfigB = {|
...Config,
props: ConfigBProps
|}
现在type Config
中的isEnabled
仍然有props:any
的参数。有没有办法指定isEnabled中的props类型与对象中的props字段的类型相同(类似于下面的.props)?
还是有更好的方法来建模这些类型?我认为您希望在这里使用泛型。不要将
Config
,而是执行以下操作:
type Config<T> = {
props: T,
isEnabled?: (args: { custom: string, props: T }) => boolean,
};
type ConfigA = Config<ConfigAProps>;
类型配置={
道具:T,
isEnabled?:(参数:{custom:string,props:T})=>布尔值,
};
输入ConfigA=Config;
非常感谢。似乎我还没有完全理解泛型,这个答案真的很有帮助。