什么是这种奇怪的三元运作?

时间:2017-08-03 23:02:25

标签: javascript syntax flowtype

我一直在阅读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

1 个答案:

答案 0 :(得分:6)

这是flow类型表示法。

param?: ?Type符号表示paramoptional parameter,而Typemaybe type。它基本上接受Typeundefinednull