TypeScript : comment créer une interface où une des deux propriétés est obligatoire ?
Bonjour à tous ! J'écris une application TypeScript pour le traitement des commandes. J'ai une interface pour un utilisateur qui peut être soit enregistré (et alors il a `userId`), soit invité (et alors il a `guestToken`). Mais le plus important — l'utilisateur doit avoir exactement un de ces deux champs, pas les deux en même temps et pas aucun.\n\nVoici comment j'ai essayé de le faire :\n\n```typescript\ninterface User {\n name: string;\n email: string;\n userId?: number;\n guestToken?: string;\n}\n```\n\nMais le problème est que TypeScript permet de créer un objet où les deux champs sont absents, ou les deux présents en même temps. Par exemple :\n\n```typescript\nconst user1: User = { name: "Anna", email: "a@mail.ru" }; // Ni userId, ni guestToken — aucune erreur n'est générée\nconst user2: User = { name: "Ivan", email: