Propriedade obrigatória condicionalmente com TypeScript

101d atrás

0 0

Nesse artigo vamos abordar como fazer um type do #TypeScript que requer pelo menos uma propriedade obrigatória.

Primeiramente, vamos criar um type simples:

type User = {
    name: string;
    phone?: string;
    email?: string;
}
No exemplo acima, definimos um type "User" que tem como propriedade obrigatória "name", "phone" e "email" são propriedades opcionais. O que nós queremos, por exemplo, é que pelo menos uma dessas 2 seja informada.

Para isso, vamos editar nosso type:

type User = {
    name: string;
    phone?: string;
    email?: string;
} & ({
    phone: string;
} | {
    email: string;
})
Pronto, agora estamos definindo que phone ou email deve ser informado.

Agora, utilizarmos o type User, informando apenas o name, vamos ter um erro:

const user: User = { name: 'João da Silva' }

Se informarmos phone ou email, nenhum erro será lançado.

const user1: User = { name: 'João da Silva', phone: '(12) 98888-8888' } // Ok

const user2: User = { name: 'João da Silva', email: 'email@email.com' } // Ok


Comentários (0)

0/512
Link