Давайте посмотрим на этот расширенный шаблон, который вы использовали, не зная

Typescript значительно усложняет Javascript, а вместе с ним и несколько расширенных шаблонов проектирования.

Шаблоны проектирования очень полезно знать на любом языке программирования, поскольку они помогают нам лучше решать сложные проблемы, следуя передовым методам.

Сегодня мы поговорим о Discrimination Union.

Что такое дискриминационный союз

Размеченное объединение — это шаблон в TypeScript, который использует одноэлементные типы, типы объединения, защиту типов и псевдонимы типов для создания объекта, который может относиться к нескольким разным типам, но может различаться.

Различие может быть выполнено с помощью одного или нескольких общих атрибутов с уникальным значением для каждого типа.

Быстрый пример

Прежде чем копаться в коде, я хотел бы проиллюстрировать его реальным примером.

Допустим, у нас есть автомобиль и мотоцикл. Оба способны ускоряться и ломаться. Однако в одном будут использоваться педали, а в другом — ручки. Но оба являются транспортными средствами!

Однако, будучи транспортным средством, как мы можем отличить автомобиль от мотоцикла, чтобы узнать, как ускориться? Мы можем использовать общее различие. Наиболее очевидным было бы количество колес!

У автомобиля их четыре, а у мотоцикла — два. Дискриминируемым атрибутом является количество колес!

Давайте напишем код для быстрого примера

А теперь давайте кое-чему научимся (надеюсь, я не учил вас отличать автомобиль от велосипеда)

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

Сам союз определяется как type Vehicle = Car | Motorbike, и с этого момента все, что мы знаем, это то, что у транспортного средства есть колеса. Мы не знаем, как его ускорить или сломать.

Теперь, если мы создадим объект Vehicle. Как определить тип автомобиля?

На данный момент мы не можем знать, что это за транспортное средство. Строка car не имеет никакого значения для машинописного текста. Поэтому нам придется использовать наше выделенное значение, чтобы понять его.

Вот так! Проверяя количество колес, которые есть у транспортного средства, мы можем легко привести его к правильному типу и использовать его функции, не рискуя получить ошибку.

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

Вот и все! Как бы ни был прост этот шаблон проектирования, было бы здорово взглянуть на него как следует, чтобы понять немного больше о том, как работает машинописный текст!

Я надеюсь, что вам понравилась эта статья. Не стесняйтесь подписаться или поставить аплодисменты!