но неужели нет каких-то других вариантов? Складывается ощущение что весь код будет состоять из сплошных if
Если у тебя всё сплошь опциональное, то да, будут одни if’ы. Как и в js
У тебя в любом случае в этом типе как-то надо обработать исключение. Можешь кинуть ошибку GetString = (v:string | undefined):string => {if (!v) throw "not a string"; return v}
всё как джс, да. другой способ - разве что отделить валидацию (на ранней стадии) от кода, который работает с данными (в котором уже все типы строгие без этих иф-ов)
Если у тебя там действительно может быть undefined, то надо на него проверять. Если ты уверен, что его нет, то можно использовать постфиксный оператор ! или где-то подкрутиь как типы выводятся
Обсуждают сегодня