Собеседование · Frontend / Game Кандидат 2 / 15 Оглавление

Блок 1 · JavaScript / TypeScript

1.2 Discriminated unions и проверка полноты

Есть тип type Provider = 'yt' | 'vk' | 'ok'. По нему в разных местах кода написаны switch. В тип добавили новый вариант 'tg'.

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

TypeScript
type Provider = 'yt' | 'vk' | 'ok' | 'tg';

function createProvider(p: Provider) {
    switch (p) {
        case 'yt': return createYT();
        case 'vk': return createVK();
        case 'ok': return createOK();
    }
}