Aproveite os tipos de utilitários do TypeScript e você pode se beneficiar de um código mais expressivo que também é mais robusto.

TypeScript é um superconjunto de JavaScript que permite adicionar digitação estática à sua base de código. Com seu poderoso sistema de tipos, o TypeScript oferece legibilidade de código aprimorada e a capacidade de detectar erros durante o tempo de compilação.

Um dos aspectos mais benéficos do TypeScript são seus tipos de utilitário integrados, que podem simplificar seus esforços de codificação e economizar um precioso tempo de desenvolvimento. Dê uma olhada nesses tipos de utilitário TypeScript obrigatórios que podem ajudá-lo a escrever código seguro com facilidade.

do TypeScript O tipo utilitário parcial permite tornar opcionais quaisquer propriedades de um objeto. Permite criar objetos com certas propriedades que podem estar ausentes ou indefinidas. Tome por exemplo:

interface Do utilizador { 
nome: corda;
idade: número;
e-mail: corda;
}

Usando o Tipo de utilidade parcial

instagram viewer
, você pode criar um novo tipo com todas as propriedades da interface do usuário definidas como opcionais:

tipo OpcionalUsuário = Parcial

Agora, você pode criar uma instância do tipo OptionalUser com apenas algumas propriedades definidas:

const usuário: OpcionalUsuário = { nome: "John" };

Você pode encontrar situações em que precisa criar um objeto com certas propriedades opcionais. Isso pode ser útil especialmente ao criar formulários que possuem vários campos, pois nem todos eles podem ser necessários e, nesses casos, a utilidade parcial pode ser vital.

O tipo de utilitário Pick do TypeScript pode ajudá-lo a gerar um novo tipo selecionando apenas um subconjunto de propriedades de um tipo existente. Ele é útil quando você precisa restringir um objeto maior a apenas algumas propriedades necessárias ou se deseja impor uma digitação estrita nas propriedades de que precisa.

interface Do utilizador { 
localização: corda;
idade: número;
e-mail: corda;
}

tipo PessoaSemEmail = Escolher'localização' | 'idade'>;

const pessoa: PessoaSemEmail = {
localização: 'EUA',
idade: 30
};

Neste exemplo, uma interface denominada "Usuário" define três propriedades: email, idade e localização.

Usando o Escolha o tipo de utilitário, você pode extrair as propriedades "location" e "age" seletivamente da interface do usuário, resultando na criação de um novo tipo chamado "PersonWithoutEmail".

Você pode então criar uma nova instância do tipo "PersonWithoutEmail" e atribuir valores apenas às propriedades "location" e "age". Como a propriedade "email" foi omitida desse tipo, você não pode atribuí-la ao objeto.

Com o tipo de utilitário Pick, você pode criar um novo tipo que incorpore apenas as propriedades desejadas. Isso pode ajudar a tornar seu código mais legível e fácil de trabalhar.

O tipo readonly significa que os atributos de um objeto são imutáveis ​​após sua criação. Esse tipo garante a consistência dos dados do objeto a longo prazo, resultando em uma manipulação de código mais suave e segura.

interface Do utilizador {
nome somente leitura: corda;
idade somente leitura: número;
e-mail somente leitura: corda;
}

Usando o Tipo de utilitário somente leitura, você pode criar um novo tipo com todas as propriedades da interface do usuário designadas como somente leitura:

tipo ReadonlyUser = Readonly

Você pode especificar valores de propriedade ao criar uma instância ReadonlyUser::

const usuário: ReadonlyUser = { 
nome: "John",
idade: 30,
e-mail: "[email protected]"
};

Quando você marca as propriedades de um objeto como somente leitura, torna-se impossível tentar modificar os valores dessas propriedades:

usuario.nome = "Jane";
// Erro: Não é possível atribuir a 'nome' porque é uma propriedade somente leitura.

O tipo Readonly é particularmente importante em situações em que você deseja garantir que um determinado objeto não seja alterado, independentemente de como ele é referenciado. Por exemplo, se você tiver um objeto que contém definições de configuração importantes, você deve garantir que ele permaneça inalterado.

Este tipo garante que todas as propriedades essenciais de um objeto estejam presentes, enquanto o tipo parcial oferece mais flexibilidade permitindo que você especifique um subconjunto de propriedades enquanto deixa os outros opcional. Isso pode ser benéfico em situações em que algumas propriedades podem não ser necessárias ou estão sujeitas a alterações.

interface Do utilizador {
nome: corda;
localização: número;
endereço: corda;
}

Ao utilizar o Tipo de utilitário necessário, é possível criar um novo tipo que combine todos os atributos da interface com o usuário, exigindo que cada uma dessas propriedades esteja presente. A criação de uma instância RequiredUser só é possível depois que todas as suas propriedades estiverem devidamente definidas.

const usuário: NecessárioUsuário = { 
nome: "John Doe",
localização: "EUA",
endereço: "Kansas 9745-0622"
};

Utilizar o tipo de utilitário Required garante que todas as propriedades necessárias estejam presentes em um objeto.

O tipo de utilitário Omitir permite criar um novo tipo excluindo propriedades específicas de um tipo existente.

interface Pessoa {
localização: corda;
idade: número;
e-mail: corda;
}

tipo PersonWithoutEmail = Omitir'e-mail'>;
const pessoa: PessoaSemEmail = { local: "EUA"; idade: 30 };

A interface Pessoa tem três propriedades: idade, localização e email. O tipo PersonWithoutEmail usa um tipo de utilitário Omit para incluir todas as propriedades de um objeto Person, exceto para email. Você pode criar uma instância desse novo tipo, sem especificar um valor para uma propriedade de email.

Você deve ter em mente que o tipo de utilitário Omitir compartilha semelhanças significativas com o tipo de utilitário Pick, pois permite que você crie um novo tipo usando apenas as propriedades que você especificar.

Você pode usar o tipo de utilitário Record para definir um tipo de objeto para o qual as chaves e os valores têm um tipo específico. Sua definição é:

tipo Registroestende chave de qualquer, T> = { [P em K]: T;};

Isso associa o tipo T ao valor de cada chave, enquanto K é uma união de chaves de qualquer tipo. O objeto resultante tem seu tipo de propriedade P definido como T.

Considere o cenário de um tipo de objeto com chaves de string e valores numéricos. Nesse caso, você pode aplicar o Tipo de utilitário de registro como:

tipo MeuRegistro = Registro<corda, número>;

const meuObjeto: MeuRegistro = {
"foo": 1,
"bar": 2,
"baz": 3,
}

Este exemplo especifica MyRecord como um tipo de objeto com chaves de string e valores numéricos. O objeto myObject incorpora uma exemplificação desse tipo, com as chaves "foo", "bar" e "baz" atribuídas aos seus valores correspondentes.

Este artigo revelou o poder absoluto dos tipos de utilitários TypeScript – eles podem ser um recurso valioso quando se trata de simplificar seu código e tornar o desenvolvimento mais rápido e eficiente. Esses tipos de utilitários e o TypeScript em geral podem fazer maravilhas para garantir que seu código esteja sempre livre de erros e obedeça a estruturas específicas.