#typescript #typescript-typin&s
#typescript #typescript-typin&s
Вопрос:
Возможно ли определить тип Typescript для объекта, который должен иметь values
значения, равные именам его свойств?
Нравится:
const ACTION_TYPES= {
UPDATE_STATE_A: "UPDATE_STATE_A",
UPDATE_STATE_B: "UPDATE_STATE_B",
UPDATE_STATE_C: "UPDATE_STATE_C",
// AND SO ON...
}
Примечание: Это все строки. Как свойства, так и значения.
Как я могу определить такой тип?
Комментарии:
1. Каков здесь вариант использования? Похоже, что это имело бы больше смысла в качестве перечисления .
2. Привет, это для
ACTION_TYPES
объекта. Итак, это{UPDATE_SOME_STATE: "UPDATE_SOME_STATE"}
и т.д. Как я мог бы решить это с помощьюenum
? Я читал документы, но до сих пор никогда не использовал перечисления.
Ответ №1:
Да, это возможно:
type Stran&eType<T extends {[key:strin&]:strin&}&&t; = {
[key in keyof T]: key
}
const test: Stran&eType<{name:'t'}&&t;= {
name: 'name'
}
Комментарии:
1. Спасибо! Существует ли аналогичное решение без обобщений?
2. Я не в курсе, но не думаю, что это возможно.
3. Ваше решение требует, чтобы я заранее знал имена свойств? Как вы сделали с
name
?4. Теперь вы поняли, к чему я клоню. Насколько я знаю, вы не можете сделать это на месте, извините