number
b: number
c: number
}
type AKey = keyof A
type B = {
a: string
c: string
}
const aKey: AKey = 'b'
const b: B = {
a: '',
c: '',
}
const test = aKey in b ? b[aKey] : null
вообще что мне нужно так это представьте у меня есть какой-то условный конфиг A, в итоге мне нужно описать тип объекта B который должен представлять из себя объект который ключами содержит какие-то ключи из A (а может и не содержит)
в итоге потом я получу переменную которая будет содержать строку (ключ из A (aKey)) и далее мне нужно получить из B значение по этому ключу (ну так как ключа может не быть то проверить есть ли он и если есть достать)
то есть В ИТОГЕ TEST должен быть типа string | null
string потому что значения у B типа string, а null если по такому ключу ничего нету
ТО ЕСТЬ как описать тип объекта который ОПЦИОНАЛЬНО содержит ключи как у другого типа и свой тип значений
Мне кажется потому, что у них разная структура. Эту проблему можно решить через написание гварда
слишком болшой будет не подойдет)
кто будет слишком большой?
ну ты имеешь ввиду проверять напрямую есть ли такой ключ?
> здесь TEST выводится unknown, почему? потому что в типе B нет ключа 'b'
Обсуждают сегодня