#typescript-typings
Вопрос:
У меня есть следующий объект, который будет вводиться для одного из моих компонентов
export const reminders = {
reminder_per_package: 3,
interval: 24,
reminders: {
monday: { active: true, time: "16:30" },
tuesday: { active: false, time: "17:00" },
wednesday: { active: true, time: "18:00" },
thursday: { active: false, time: "11:00" },
friday: { active: false, time: "12:00" },
},
};
как следует
<Reminder values={reminders }/>
в typescript как мы определим тип значений внутри компонента напоминания? Я попытался сделать следующее
export type Day = "monday" | "tuesday" | "wednesday" | "thursday" | "friday";
export type DayReminder = {
active: boolean;
time: string;
};
export interface reminders {
reminder_per_package: number;
interval: number;
reminders: {
monday: DayReminder;
tuesday: DayReminder;
wednesday: DayReminder;
thursday: DayReminder;
friday: DayReminder;
};
}
Есть ли лучший способ определить это в машинописном тексте? Вместо того, чтобы повторять названия дней, не можем ли мы использовать тип дня и определить напоминание в одной строке? Поскольку ключом будет один из дней, есть ли способ определить его следующим образом
export interface IReminder {
reminder_per_package: number;
interval: number;
reminders: {
[Day]: DayReminder; // it gives error on [Day]
};
}
Комментарии:
1. Зачем строгое сопоставление с одним напоминанием в день? Рассматривали ли вы массив/список
{day, active, time}
?