Как создать условные типы в TypeScript?

TypeScript Изучение

В этой статье мы увидим, как мы создаем условные типы в TypeScript.

Принятие решения делает функцию полезной для другого типа ввода. Условные типы, как следует из названия, определяют типы значений на основе условий. Теперь условные типы кажутся условным оператором, хотя это то же самое, что условный оператор используется для выбора потока кода на основе определенных условий и условных типов, используемых для выбора различных типов для значений.

Синтаксис: мы можем создавать условные типы с использованием тернарного оператора и расширений в TypeScipt.

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

Здесь расширение работает как функция сравнения, которая проверяет, имеет ли тип 1 свойства типа 2, если да, то он переходит к истинной ветке, иначе в ложной ветке.

Теперь давайте разберемся на следующих примерах.

Пример 1. В этом примере мы создадим условные типы, которые принимают значения и проверяют, имеет ли он свойство числа или нет с расширением. Если у него есть свойство числовых условных типов, назначьте типы вызывающему объекту условного типа, иначе он никогда не назначит типы.

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)

Вывод:

88
number

Пример 2. Теперь мы создадим условный тип, сузив функциональность входных данных. В этом типе создания условных типов мы будем отфильтровывать определенный тип ввода, который содержит некоторое значение. Здесь мы используем расширенную функцию и набор значений для сужения с помощью условных типов. Сначала мы создадим условные типы, которые проверяют свойство, имеет ли оно числовую строку или логическое значение или нет, а затем, если оно имеет

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);

Вывод:

88
Hello Geeks
true
This is an error

Пример 3. В этом примере сначала мы создадим условные типы для числа и строки в одном условном типе. После этого мы используем одни и те же условные типы как для строки, так и для числа.

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)

Вывод:

88
Hey Geeks

Читайте также:  Java-программа для рисования фигуры на листе Excel с использованием Apache POI
Оцените статью
bestprogrammer.ru
Добавить комментарий