Написать функцию c union

У нас есть 2 типа x и y и есть тип union

Нужно написать такую функцию, которая принимает этот union и если нам пришел первый тип, то есть X, то возвращаем «с» если нет, то вернуть строку «missing»

type X = {
    a: 1;
    b: number;
    c: string;
}

type Y = {
    a: 2;
    b: string;
}

type UNION = X | Y;

// return a.c or 'missing'
function getC(a: UNION): string {
}

Доп вопрос 1.

У нас есть 2-й тип Intersection. который пересекает 1-й и второй типы. Можешь написать такую константу b: intersection . Которая удовлетворяла бы этому типу.

// type INTERSECTION = X & Y
const b: INTERSECTION =

Доп вопрос 2.

Нужно написать тип — дженерик. Он принимает 2 значения . A и B. И допустим, если мы его вызовем с X Y. Он должен взять все свойства из X и если они есть в Y. Переписать их значениями из Y. Аналогично операции merge в lodash. Все значения, которые уже были переписываются.

// Merge<x, y> = {a: 2, b: string, c: string}
type Merge<A, B> =

Оставьте комментарий