2015-05-14 151 views
3

我不明白這是甚麼,甚至是。請有人指點我研究什麼?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://stackoverflow.com/a/10270383/ 3000589 – martijnn2008

+5

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

+0

確實。看起來像一個三元操作符(這是我首先回答的),但事實並非如此。奇怪......從來沒有見過這個。 – Blizz

回答

8

聲明來自Flow語法。它說,「圓圈」是與是一個命名功能的屬性的對象「setNativeProps」:

{ setNativeProps(props: Object): void } 

它還說,圓is nullable(由前述指示「?」),並且所述默認值將是null,直到指定類型的對象已分配給它。

如果你還看不起你可以看到如何調用代碼檢查那個圈子已經調用setNativeProps之前被分配樣本:

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