#typescript
#typescript
Вопрос:
У меня есть следующий тип:
type MyKeys = 'foo' | 'bar' | 'baz'
Я хочу определить тип, который имеет ключи типа MyKeys
, но также расширяет его с помощью большего количества ключей, например, этого:
type FooType = {
[key in MyKeys]: boolean
quux: boolean // <--- Error: '}' expected.ts(1005)
}
Как я могу использовать как общие ключи, так и явные имена ключей?
Комментарии:
1. Я также не уверен, что «универсальные ключи» — это то, что вы называете этим, и если «явные ключи» имеют смысл
Ответ №1:
Можно использовать тип пересечения:
type FooType = {[key in MyKeys]: boolean} amp; {
quux: boolean
}
или, как упоминал @jcalz, вы также можете использовать Record<>
:
Record<MyKeys | 'quux', boolean>
это будет эквивалентно:
Комментарии:
1. Это взаимодействие , а не объединение .
2. Вы также можете сделать
Record<MyKeys | 'quux', boolean>