type Status = "default" | "hover" | "active" | "disabled"
type StatusMap = {
[key in Status]?: boolean
}
const stack: Status[] = ['disabled', 'active', 'hover', 'default']
function getStatus(props: StatusMap): Status {
for (let i = 0; i <= stack.length; i++) {
const s = stack[i]
if (props[s]) {
return s
}
}
}
Вот код ts, который вызывает проблемы:
В функции отсутствует конечный оператор возврата, а тип возвращаемого значения не включает 'undefined'
Ts считают есть шанс вернуть undefined
, однако в реальном варианте использования это невозможно. Потому что по крайней мере один ключ будет присутствовать в StatusMap
, даже если он отмечен как необязательный.
Возможно, быстрое решение - вернуть значение по умолчанию, чтобы ts не жаловался. Однако возврат по умолчанию никогда не будет выполнен, что вызывает проблемы с покрытием.
Какое возможное решение