Ответ 1
Смотрите: Пошаговое руководство: Интерфейсы | TypeScript :: Описание простых типов.
В основном ?
помечает элемент как необязательный в интерфейсе.
(РЕДАКТИРОВАТЬ: как отмечено в комментариях, это не ограничивается интерфейсами.)
Я нашел следующее в файле объявления TypeScript для Angular:
interface IDirective{
compile?:
(templateElement: IAugmentedJQuery,
Что делает ?:
После компиляции?
Смотрите: Пошаговое руководство: Интерфейсы | TypeScript :: Описание простых типов.
В основном ?
помечает элемент как необязательный в интерфейсе.
(РЕДАКТИРОВАТЬ: как отмечено в комментариях, это не ограничивается интерфейсами.)
В этом случае ?:
Не один оператор, а два оператора:
?
(необязательный),
:
(указать тип).
В других языках/случаях ?:
Был бы Оператором Элвиса.