I found the following in a TypeScript declaration file for Angular:
interface IDirective{ compile?: (templateElement: IAugmentedJQuery, What does the ?: after compile do?
2 Answers
See: Walkthrough: Interfaces | TypeScript :: Describing Simple Types.
Basically, ? marks the member as being optional in the interface.
(EDIT: As noted in comments, this is not restricted to interfaces.)
2In this case, the ?: is not a single operator, but rather two operators:
?(optional),:(specify type).
In other languages/cases, ?: would be the Elvis Operator.