Javascript:?运营商

Javascript:?运营商

问题描述:

我不明白这是甚么,甚至是。请有人指点我研究什么?Javascript:?运营商

circle: (null : ?{ setNativeProps(props: Object): void }), 

它是React Native示例的一部分,它是React Native类定义的一部分。外部分(略):

var NavigatorIOSExample = React.createClass({ 
... 
circle: (null : ?{ setNativeProps(props: Object): void }), 
... 
}); 

我以为这是一些棘手的使用三元运算符。一个匿名函数。但?

来源:https://facebook.github.io/react-native/docs/panresponder.html

+0

看一看:http://*.com/a/10270383/ 3000589 – martijnn2008

+5

@Quentin我不认为这是OP的要求。 'null:? ...'不是有效的原生JavaScript语法,当然不包括在[那篇文章]中(http://*.com/questions/9549780/what-does-this-symbol-mean-in-javascript) 。 –

+0

确实。看起来像一个三元操作符(这是我首先回答的),但事实并非如此。奇怪......从来没有见过这个。 – Blizz

声明来自Flow语法。它说,“圆圈”是与是一个命名功能的属性的对象“setNativeProps”:

{ setNativeProps(props: Object): void } 

它还说,圆is nullable(由前述指示“?”),并且所述默认值将是null,直到指定类型的对象已分配给它。

如果你还看不起你可以看到如何调用代码检查那个圈子已经调用setNativeProps之前被分配样本:

this.circle && this.circle.setNativeProps({ 
    backgroundColor: CIRCLE_HIGHLIGHT_COLOR 
});