我正在学习react native
。我想了解代码Here。下面的片段对我来说似乎很奇怪。你能解释它的作用吗?
circle: (null : ?{ setNativeProps(props: Object): void })
我知道if
语句如:
blabla = (if-this-is-true) ? this-should-be-used : otherwise_this
但不知道圆圈是否相同。
答案 0 :(得分:2)
It Flow类型注释。 Flow是JavaScript的静态类型检查器(https://flow.org/)。
?Type
语法表示变量类型为Maybe类型,因此它可以是undefined
,null
或接受提供的“类型”。例如?字符串意味着string
,null
或undefined
。更多关于他的流程类型here。
(null: Type)
语法是类型转换表达式(link)。使用类型转换表达式,您可以断言值是某些类型或将值转换为特定类型。
在你的问题(null : ?{ setNativeProps(props: Object): void })
中,null将被转换为接受的Maybe类型:
setNativeProps
的对象,将对象作为参数并且不返回任何内容(void
类型),null
,undefined
答案 1 :(得分:2)
(x: y)
是如何在流程中执行类型转换。即值x
将转换为y
类型。
在您的情况下,null
被细化为
?{ setNativeProps(props: Object): void }
是一个具有方法setNativeProps
的可空对象。此方法接受一个对象并重新运行任何内容(void
)。
了解有关https://flow.org/的流量的详情。