¿Cómo crear tipos condicionales en TypeScript?

En este artículo, veremos cómo creamos tipos condicionales en TypeScript.

Tomar una decisión hace que la función sea útil para un tipo diferente de entrada. Los tipos condicionales, como sugiere su nombre, definen los tipos de valor en función de las condiciones. Ahora, los tipos condicionales parecen una declaración condicional, aunque es igual en la forma en que la declaración condicional se usa para elegir el flujo de código en función de ciertas condiciones y los tipos condicionales se usan para elegir diferentes tipos de valores.

Sintaxis: podemos crear los tipos condicionales con el operador ternario utilizado y se extiende en TypeScript.

Type1 extends Type2 ? for One value : for different value;

Aquí extender funciona como una función de comparación que verifica si el Tipo 1 tiene propiedades de Tipo 2, si es así, entonces salta a la rama verdadera de lo contrario en la rama falsa.

Ahora vamos a entender a través de los siguientes ejemplos.

Ejemplo 1: en este ejemplo, crearemos los tipos condicionales que toman los valores y verifican si tiene la propiedad de número o no con extensiones. Si tiene la propiedad de tipos condicionales numéricos, asigne los tipos a la persona que llama de tipo condicional; de lo contrario, nunca asigna tipos.

Javascript

// Distributive property of Typescript
type return_dis<D>= D extends number ? D : never;
 
type show = number;
 
// Conditional types for number
type new_number = return_dis<show>;
 
let n1 : new_number = 88;
console.log(n1);
 
console.log(typeof n1)

Producción:

88
number

 Ejemplo 2:  Ahora, crearemos el tipo condicional restringiendo la funcionalidad de los datos de entrada. En este tipo de creación de tipos condicionales, filtraremos el tipo de entrada específico que contiene algún valor. Aquí, usamos una función extendida y un conjunto de valores para restringir con tipos condicionales. Primero crearemos los tipos condicionales que verifican la propiedad si tiene una string numérica o booleana o no, luego si tiene 

Javascript

type Conditional<G> = G extends {typeof : number|string|Boolean} ?
                      G :"This is an error";
 
let n = 55;
type nu = Conditional<typeof n>;
 
let s = "hello world";
type Str = Conditional<s>;
 
let b = Boolean;
type Boo = Conditional<typeof b>;
 
let k = null;
type SecondCond = Conditional<typeof k>;
 
let l1: nu = 88;
console.log(l1);
 
let l2: Str = "Hello Geeks";
console.log(l2);
 
let l3: Boo = true;
console.log(l3);
 
let l: SecondCond = "This is an error";
console.log(l);

Producción:

88
Hello Geeks
true
This is an error

Ejemplo 3: en este ejemplo primero, crearemos los tipos condicionales para el número y la string en un tipo condicional. Después de eso, usamos los mismos tipos condicionales tanto para string como para número.

Javascript

// Distributive property of Typescript
type return_dis<D>= D extends number|string ? D : never;
 
type show = number|"Geek";
 
// Conditional types for number
type new_number = return_dis<show>;
 
let n1 : new_number = 88;
console.log(n1);
 
// Same type is used for string also
type new_Geek = return_dis<show>;
 
let G1 : new_Geek = "Hey Geeks";
 
console.log(G1)

Producción:

88
Hey Geeks

Publicación traducida automáticamente

Artículo escrito por satyam00so y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *