Aproveche los tipos de utilidades de TypeScript y podrá beneficiarse de un código más expresivo que también es más sólido.

TypeScript es un superconjunto de JavaScript que le permite agregar escritura estática a su base de código. Con su potente sistema de tipos, TypeScript ofrece una mejor legibilidad del código y la capacidad de detectar errores durante el tiempo de compilación.

Uno de los aspectos más beneficiosos de TypeScript son sus tipos de utilidades integrados, que pueden simplificar sus esfuerzos de codificación y ahorrar un valioso tiempo de desarrollo. Eche un vistazo a estos tipos de utilidades de TypeScript imprescindibles que pueden ayudarle a escribir código con seguridad de tipos con facilidad.

Mecanografiado El tipo de utilidad parcial le permite hacer que cualquier propiedad de un objeto sea opcional. Le permite crear objetos con ciertas propiedades que pueden faltar o no estar definidas. Tomemos por ejemplo:

interfaz Usuario { 
nombre: cadena;
edad: número;
correo electrónico: cadena;
}
instagram viewer

Utilizando el Tipo de utilidad parcial, puede crear un nuevo tipo con todas las propiedades de la interfaz de usuario configuradas como opcionales:

tipo UsuarioOpcional = Parcial

Ahora, puede crear una instancia del tipo OptionalUser con solo algunas propiedades definidas:

constante usuario: UsuarioOpcional = { nombre: "John" };

Puede encontrar situaciones en las que necesite crear un objeto con ciertas propiedades opcionales. Esto puede ser útil especialmente cuando se construyen formas que tienen varios campos, ya que no todos pueden ser obligatorios y, en tales casos, la utilidad parcial podría ser vital.

El tipo de utilidad Pick de TypeScript puede ayudarlo a generar un nuevo tipo seleccionando solo un subconjunto de propiedades de un tipo existente. Es útil cuando necesita reducir un objeto más grande a solo unas pocas propiedades que se requieren o si desea imponer una escritura estricta en las propiedades que necesita.

interfaz Usuario { 
ubicación: cadena;
edad: número;
correo electrónico: cadena;
}

tipo PersonWithoutEmail = Elegir'ubicación' | 'edad'>;

constante persona: PersonaSinEmail = {
ubicación: 'EE.UU',
edad: 30
};

En este ejemplo, una interfaz denominada "Usuario" define tres propiedades: correo electrónico, edad y ubicación.

Al usar el Elija el tipo de utilidad, puede extraer las propiedades "ubicación" y "edad" de forma selectiva desde la interfaz de usuario, lo que da como resultado la creación de un nuevo tipo denominado "Persona sin correo electrónico".

A continuación, puede crear una nueva instancia del tipo "PersonWithoutEmail" y asignar valores solo a las propiedades "ubicación" y "edad". Dado que la propiedad "correo electrónico" se ha omitido de este tipo, no puede asignarla al objeto.

Con el tipo de utilidad Seleccionar, puede crear un nuevo tipo que solo incorpore las propiedades que desee. Esto puede ayudar a que su código sea más legible y más fácil de trabajar.

El tipo de solo lectura significa que los atributos de un objeto son inmutables después de su creación. Este tipo garantiza la consistencia de los datos del objeto a largo plazo, lo que da como resultado un manejo de código más fluido y seguro.

interfaz Usuario {
nombre de solo lectura: cadena;
edad de solo lectura: número;
correo electrónico de solo lectura: cadena;
}

Utilizando el Tipo de utilidad de solo lectura, puede crear un nuevo tipo con todas las propiedades de la interfaz de usuario designadas como de solo lectura:

tipo ReadonlyUser = Solo lectura

Puede especificar valores de propiedad al crear una instancia de ReadonlyUser:

constante usuario: ReadonlyUser = { 
nombre: "John",
edad: 30,
correo electrónico: "[email protected]"
};

Cuando marca las propiedades de un objeto como de solo lectura, intentar modificar los valores de esas propiedades se vuelve imposible:

usuario.nombre = "Jane";
// Error: No se puede asignar a 'nombre' porque es una propiedad de solo lectura.

El tipo de solo lectura es particularmente importante en situaciones en las que desea asegurarse de que un objeto en particular no cambie, independientemente de cómo se haga referencia a él. Por ejemplo, si tiene un objeto que contiene ajustes de configuración importantes, querrá asegurarse de que permanezca inalterado.

Este tipo asegura que todas las propiedades esenciales de un Objeto estén presentes, mientras que el tipo Parcial ofrece más flexibilidad al permitirle especificar un subconjunto de propiedades mientras deja las demás opcional. Esto puede resultar beneficioso en situaciones en las que algunas propiedades pueden no ser necesarias o están sujetas a cambios.

interfaz Usuario {
nombre: cadena;
ubicación: número;
DIRECCIÓN: cadena;
}

Al utilizar el Tipo de servicio requerido, es posible crear un nuevo tipo que combine todos los atributos de la interfaz de usuario y al mismo tiempo requiera que cada una de estas propiedades esté presente. La creación de una instancia de RequiredUser solo es posible una vez que todas sus propiedades se hayan configurado correctamente.

constante usuario: UsuarioRequerido = { 
nombre: "Juan Doe",
ubicación: "EE.UU",
DIRECCIÓN: "Kansas 9745-0622"
};

El uso del tipo de utilidad Requerido asegura que todas las propiedades requeridas estén presentes dentro de un objeto.

El tipo de utilidad Omitir le permite crear un nuevo tipo excluyendo propiedades particulares de un tipo existente.

interfaz Persona {
ubicación: cadena;
edad: número;
correo electrónico: cadena;
}

tipo PersonWithoutEmail = Omitir'correo electrónico'>;
constante persona: PersonaSinEmail = { ubicación: "EE.UU"; edad: 30 };

La interfaz de persona tiene tres propiedades: edad, ubicación y correo electrónico. El tipo PersonWithoutEmail usa un tipo de utilidad Omit para incluir todas las propiedades de un objeto Person, excepto el correo electrónico. Luego puede crear una instancia de este nuevo tipo, sin especificar un valor para una propiedad de correo electrónico.

Debe tener en cuenta que el tipo de utilidad Omitir comparte similitudes significativas con el tipo de utilidad Seleccionar, ya que le permite diseñar un nuevo tipo utilizando solo las propiedades que especifique.

Puede utilizar el tipo de utilidad Record para definir un tipo de objeto para el que las claves y los valores tengan un tipo particular. Su definición es:

tipo Registroextiende clave de cualquier, T> = { [P en K]: T;};

Este asocia el tipo T con el valor de cada clave, mientras que K es una unión de claves de cualquier tipo. El objeto resultante tiene su tipo de propiedad P establecido en T.

Considere el escenario de un tipo de objeto con claves de cadena y valores numéricos. En ese caso, puede aplicar el Registrar tipo de utilidad como:

tipo MiRegistro = Registro<cadena, número>;

constante miObjeto: MiRegistro = {
"fu": 1,
"bar": 2,
"baz": 3,
}

Este ejemplo especifica MyRecord como un tipo de objeto con claves de cadena y valores numéricos. El objeto myObject representa un ejemplo de este tipo, con las teclas "foo", "bar" y "baz" asignadas a sus valores correspondientes.

Este artículo descubrió el gran poder de los tipos de utilidades de TypeScript: pueden ser un activo valioso cuando se trata de simplificar su código y hacer que el desarrollo sea más rápido y eficiente. Estos tipos de utilidades y TypeScript en general pueden hacer maravillas para garantizar que su código esté siempre libre de errores y se adhiera a estructuras específicas.