ObjUnion, someIndex: LiteralTypeUnion) {
return A[someIndex];
}
‘’’
Первый аргумент - юнион объектов с разными полями, часть общие, часть различаются.
Второй аргумент - юнион из литерал типов, которые являются ключами объектов из первого аргумента.
При попытке обратиться к индексу таким образом как в теле функции, ts ругается на то, что в части объектов из юниона такое поле отсутствует.
Как лучше поступить в такой ситуации? Пока приходит в голову только использование чего то вроде паттерна null-object, где для всех объектов из юниона определяем одинаковый набор полей, просто там, где они не нужны, указываем тип undefined или never, но может есть ещё какие то хорошие практики?
typeguard?
не совсем понял чего ты собственно добиться хочешь
Обсуждают сегодня