Рассмотрим следующий пример.
enum DialogType {
Options,
Help
}
class Dialog {
test() : string {
return "";
}
}
class Greeter {
openDialogs: { [key in DialogType]: Dialog | undefined } = {
0: undefined,
1: undefined
};
getDialog(t: DialogType) {
return this.openDialogs[t];
}
}
const greeter = new Greeter();
const d = greeter.getDialog(DialogType.Help);
if (d) document.write(d.test());
Также на игровой площадке
С ним 3 вопроса / вопроса:
- ПочемуЯ не могу опустить свойства в моем литерале инициализатора, даже если я объявляю свойства как '|undefined '
- Почему я не могу использовать DialogType.Options в качестве клавиши типа, и вместо этого приходится использовать жестко закодированный номер?
- Почему я должен использовать ключ в DialogType вместоключ: DialogType '?(Или я могу?)