我一直在阅读Flux库源代码,在一些地方我看到了这种表示法:
?: ?
我不确定这是否是对三元运算符的奇怪用法,或其他完全不同的东西。
从line 245 of the FluxContainer.js文件开始的函数声明中可以找到几个混淆使用它的好例子:
function createFunctional<Props, State, A, B>(
viewFn: (props: State) => React.Element<State>,
getStores: (props?: ?Props, context?: any) => Array<FluxStore>,
calculateState: (prevState?: ?State, props?: ?Props, context?: any) => State,
options?: Options,
): ReactClass<Props> {
/** Omitted Implementation Details **/
};
这里发生了什么,例如props?: ?Props
?
答案 0 :(得分:6)
这是flow类型表示法。
param?: ?Type
符号表示param
为optional parameter,而Type
为maybe type。它基本上接受Type
加undefined
和null
。