TypeScript в React-приложениях. 2. Как понимать типы

Часто разработчики воспринимают типы как набор отличительных особенностей переменной. Это поверхностное видение мешает общему пониманию работы Typescript и поведению его анализатора. В результате приходится привыкать к разным приёмам типизации, вместо того, чтобы сделать для себя их очевидными.
Прежде чем приступить к рассмотрению приёмов, попробуем для начала привить немного иной подход в понимании типов и тогда требования Typescript к коду станут выглядеть более естественными.