TypeScript泛型声明语法
在下面的代码中,Action=Action的含义是什么TypeScript泛型声明语法,typescript,Typescript,在下面的代码中,Action=Action的含义是什么 export type ActionReducerMap<T, V extends Action = Action> = { [p in keyof T]: ActionReducer<T[p], V>; }; 导出类型ActionReducerMap={ [p in keyof T]:作用减速器; }; 它是一个通用参数,被约束为扩展动作(即它可以是动作或动作的任何子类),如果没有提供,它的默认值是动作 假设
export type ActionReducerMap<T, V extends Action = Action> = {
[p in keyof T]: ActionReducer<T[p], V>;
};
导出类型ActionReducerMap={
[p in keyof T]:作用减速器;
};
它是一个通用参数,被约束为扩展动作
(即它可以是动作
或动作
的任何子类),如果没有提供,它的默认值是动作
假设你声明:
const myReduceMap : ActionReducerMap<SomeType> = ...
constMyReduceMap:ActionReducerMap=。。。
省略第二个泛型类型参数,这里它将默认为
Action
V extends Action-这意味着V必须是扩展Action的类型
=Action->这意味着如果未提供类型V,则默认值为Action本身。我们可以看到
Action
的定义吗(如果ActionReducer
更好)?在任何情况下,V
都可以扩展动作,但如果没有为V
提供类型,Action
将用作默认值。我将其解释为,“V可以是一个动作
,或者更具体的东西,如果您不提供更具体的东西,它将被视为一个通用的动作
。”