Я предполагаю, что когда вы говорите «как написать необязательное замыкание», вы имеете в виду «как вызвать необязательное замыкание», потому что вы написали параметр замыкания просто отлично, но вы просто неправильно вызывать его.
Чтобы вызвать необязательное закрытие, сначала нужно развернуть его. Либо:
completion?()
или:
if let unwrappedCompletion = completion {
unwrappedCompletion()
}