#typescript #typescript-typings
Вопрос:
У меня есть интерфейс с разными ключами, которые принимают одни и те же значения перечисления. Я определил тип этих значений перечисления, называемый типом крови. Могу ли я каким-то образом пропустить определение интерфейса и просто указать, что все ключи объекта должны соответствовать типу, когда я определяю свой объект?
/** Defining types that will go into the interface */
type bloodType = {
| "typeA"
| "typeB"
| "typeO"
};
/** Defining the interface */
interface IPopulation {
"Bobby": bloodType,
"Jimmy": bloodType,
"Sandra": bloodType,
"Angel": bloodType,
"JimmyJohn": bloodType,
}
/** The actual object using the interface */
const population:IPopulation = {
"Bobby": "typeA",
"Jimmy": "typeB",
"Sandra": "typeB",
"Angel": "typeO",
"JimmyJohn": "typeA",
}
могу ли я как — то пропустить определение интерфейса и просто сделать это…
type bloodType = {
| "typeA"
| "typeB"
| "typeO"
};
/** Is there some sort of shortcut like this */
const population = {
"Bobby": "typeA",
"Jimmy": "typeB",
"Sandra": "typeB",
"Angel": "typeO",
"JimmyJohn": "typeA",
}: {string: bloodType || {}}; // <- this obv doesn't work
Ответ №1:
Я думаю, что вы ищете следующее:
type BloodType = 'typeA' | 'typeB' | 'typeO';
interface IPopulation {
[key: string]: BloodType;
}