Javascript 有人能解释一下下面的代码吗?
因此,我目前正在审查使用JS和流类型编写的React-Redux代码。我在流类型方面没有什么经验,所以下面的代码让我有点困惑 首先,我有一些redux部分的操作Javascript 有人能解释一下下面的代码吗?,javascript,reactjs,react-redux,flow-typed,Javascript,Reactjs,React Redux,Flow Typed,因此,我目前正在审查使用JS和流类型编写的React-Redux代码。我在流类型方面没有什么经验,所以下面的代码让我有点困惑 首先,我有一些redux部分的操作 export type allActions = |{| +type: "FIRST_ACTION_TYPE", +formType: FormType, +offset: number, +size: number |} |{| +type: "SECOND_ACTION
export type allActions =
|{|
+type: "FIRST_ACTION_TYPE",
+formType: FormType,
+offset: number,
+size: number
|}
|{|
+type: "SECOND_ACTION_TYPE",
|};
所以我的第一个问题是{{}这个表达式是什么意思
第二个问题是关于FormType
部分。因此,在动作的上方有FormType
的定义。如下所示
type FormProps = {
prop_1?: string,
prop_2?: number,
prop_3: number
};
type FormType = RecordOf<FormProps>;
type FormProps={
项目1:字符串,
项目2:编号,
提案3:编号
};
类型FormType=记录的类型;
有人能解释一下上面的代码在做什么吗?所有操作都是用于键入Redux Dispatch的联合类型。这允许流在分派无效操作时抛出错误
|{|
+type: "FIRST_ACTION_TYPE",
+formType: FormType,
+offset: number,
+size: number
|}
|{|
+type: "SECOND_ACTION_TYPE",
|};
第一个|
有点混乱,但它只是一个可选字符,通常由多行并集上的lint添加。它可以被删除,并且不会导致错误
{|…|}定义一个不能包含任何附加属性的精确对象。它们之间的|
定义了联合
前面的+
符号将每个属性标记为只读
表单数据中每个属性后面的?
符号将每个属性标记为可选
recordOf
为泛型。我认为这可能是定制的,也可能是旧版本的flow
您在哪里看到
|{|
?在你的编辑器中?它在一个.js文件下的代码中,包含所有动作、动作创建者和还原器。哦,这现在很有意义。如果我读更多关于流类型的内容,我会更清楚吗?整个项目都是用流类型编写的,有时我会像这样感到非常困惑绝对,这是一个学习曲线,但一旦点击你永远不会想使用React而不使用它。它也非常接近typescript,所以当你遇到它时,你会更舒服。明白了!非常感谢!