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 dans ce cas il a `userId`), soit invité (et dans ce cas il a `guestToken`). Mais le plus important est que l'utilisateur doit avoir exactement un de ces deux champs, et non les deux à la fois ou 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:
No answers yet.
Connectez-vous pour laisser une réponse