Ugh, Swift is really confusing terminology here. Swift has an "option" type, like "Option" in Haskell and F#. It's a wrapper around an object that may or may not be present. You can use that to avoid null-everywhere.
This is totally unrelated to "optional typing", which is a style of static type systems that support mixing typed and untyped code.
Alas, Swift called their option type "Optional" and then talks about "an optional type".