как правильно сравнить необязательный параметр с несколькими значениями?

Есть переменная

let mayBeString?: 'a' | 'b' | 'c' | 'd' | 'e'

Есть некоторые значения, по которым я хочу проверить переменную. 'a', 'b' и 'd'. Я делаю так:

const defined = ['a', 'b', 'd'].includes(mayBeString)

Но TS ругается:

TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'.
Type 'undefined' is not assignable to type 'string'.

Очень не хочется сравнивать переменную со всеми нужными мне значениями как-то так:

const defined = mayBeString === 'a' || mayBeString === 'b' || mayBeString === 'd'

Подскажите, как можно и как лучше это сделать?


Ответы (1 шт):

Автор решения: Gayrat Vlasov
let mayBeString : 'a' | 'b' | 'c' | 'd' | 'e' | undefined = 'e';

const defined = ['a', 'b', 'd'].includes(mayBeString);
console.log(defined);
→ Ссылка