Что это за странная троичная операция? [Дубликат]

1

Я читал исходный код библиотеки Flux, и в нескольких местах я вижу это обозначение:

?: ?

Я не уверен, что это странное использование тернарного оператора или что-то еще.

Несколько хороших примеров запутанного использования этого можно найти в объявлении функции, начиная с строки 245 файла 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?

Теги:
flowtype
syntax

1 ответ

6
Лучший ответ

Это обозначение типа потока.

Обозначение param?:?Type означает, что param является необязательным параметром и Type может быть типом. Он в принципе принимает Type plus undefined и null.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню