No TypeScript,
<name>?: <typename> um atalho para <name>: <typename> | undefined . Isso indica ao sistema de tipos que um símbolo pode conter um valor do tipo indicado ou pode conter o valor
undefined (que é como null ). Isso é importante quando o (novo no TypeScript 2)
--strictNullChecks opção está habilitada. A documentação sobre tipos com reconhecimento de nulo e indefinido opção é provavelmente onde você deve começar a entender por que isso é útil.