Parce que TypeScript est typé structurellement, un UserId et un OrderId qui sont tous deux string sont interchangeables — le compilateur ne peut pas vous empêcher de les confondre. Les types nominaux simulent la typification en attachant une unique "marque" fantôme, de sorte que des types sinon identiques deviennent distincts.
