По существу, я хочу способ гарантировать, что опции аргумент имеет ключи, которые являются значением конкретного перечисления:Могу ли я ограничить ключи объектов значениями enums с помощью машинописного текста?
//enum Mode { Foo, Bar };
interface Mode { Foo: number, Bar: number }
interface View {
text: string;
};
class FooView implements View {
text = 'foo';
}
class BarView implements View {
text = 'bar';
}
function initialize(options: { mode: {[P in keyof Mode]?: View} }) {
let mode: View = options.mode.Foo;
}
initialize({ mode: { Bar: new FooView() } });
Он отлично работает, если я использую интерфейс/класс вместо перечисления, но это действительно перечисление (концептуально) ...
Я думал об этих строках ... Определенно, без оптимального. Спасибо за информацию! – Lucas