Answers:
您应该将可选的闭包括在括号中。这将适当地限制?
操作员的范围。
func then(onFulfilled: ()->(), onReject: (()->())?){
if let callableRjector = onReject {
// do stuff!
}
}
()->Int?
含义可能会引起混淆。
?
它实际上只不过是糖Optional<T>
,因此您还可以编写`func then(onFulfilled:()->(),onReject:Optional <() ->()>){` ()
,尽管IMO ()?
更漂亮,但您不需要额外的东西。您也可以使用像这样的类型别名使它更漂亮 typealias RejectHandler = () -> ()
func then(onFulfilled: ()->(), onReject: RejectHandler?) {